java初生
- 1995年的网页简单粗糙,缺乏互动性。
- 图形界面程序:Applet
- java se桌面
- java me手机
- Java ee服务器
Java发展
特性:三高:高可用,高性能,高并发
-
构造工具:Ant、Maven、Jekins
-
应用服务器:Websphere、weblogic
-
Web开发:Struts、Spring、Hibernate、myBatis
-
开发工具:Eclipse、Netbean、intellij idea、Jbuilder
-
2006:hadoop大数据领域
-
2008 :Android
java特性和优势
1. 简单性
2. 面向对象
3. 可移植性
4. **高性能**
5. **分布式**
6. **动态性**
7. **多线程**
8. **安全性**
9. 健壮性
打开CMD的方式
-
开始+系统+命令提示符
-
win键+r
-
文件夹的路径前面Cmd+空格键
-
powershell
管理员身份运行可以获得最高权限
常用的dos命令
1 .#英文状态下 ##切换盘符 盘符+: 2.#查看当前下的文件dir 3.#切换目录 dir(directory) cd /d E\IDE第一个反斜杠是参数的标志,第二个斜杠作用是目录的标志 cd..返回上一级 4.#清理屏幕cls(clean screen) 5.#查看ip ipconfig 6.#打开应用 calc mspaint notepad 7.#ping命令 ping www.baidu.com 8.#文件操作命令: #创建文件夹 md(make directorty) #删除 del #移除文件夹 rd
IDEA安装
官网
jet brands的官方网站
安装卸载jdk
最好安装jdk1.8版本
-
oracle官方下载jdk
-
配置环境目录
-
win10 此电脑—属性----高级系统设置–1.JAVA_HOME2.PATH
JAVA_HOME 安装目录 Path 1. JAVA的安装目录bin 2. JRE的bin目录下
HelloWorld
-
建立一个code文件夹存放代码
-
建立一个Java文件
- 文件后缀名为.java
- Hello.java
- 【注意点】文件没有后缀名,需要手动打开
- 文件名字好像要和类名一致
恭喜成为一名程序猿
关键字
java所有的组成部分都需要名字,类名,变量名和方法名都被称为标识符
标识符
- 所有的标识符都应该以字母(A-Z或者a-z),美元符($),或者下划线(_)开始
- 首字符之后可以是字母(A-Z或者a-z),美元符($),或者下划线(_)或数字的任何形式的组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符举例:age,$salary,_value,_1_value
- 非法标识符举例:132abc,-salary,#abc
- 可以用中文命名,但是不建议很LOW
注释
-
注释不会被执行,是写给写代码的人看的
-
单行注释
-
多行注释
-
文档注释
//单行注释---注释一行文字 /* 多行注释---注释一段文字 */ /** * 文档注释 */
基本数据类型
- 强类型语言
要求变量的使用要严格要求符合规定,所有变量定义后才能使用
- 弱类型语言
基本类型
先声明变量,然后在变量实例化
/*
整数型
*/
int num1=10;//最常用的
byte num2=10;
short num3=30;
long num4=40L;//Long类型后面一般加L
/*
浮点型(小数)
*/
float num5=10.0F;//float类型后面加一个F
double num6=10.0;//常用浮点型
/*
布尔型
*/
boolean i=true;
boolean b=false;
/*
字符
*/
char name='a';
/*
字符串:字符串是一个封装类,被别人加工好的一个类
*/
String name1="liuyueyang";
引用类型
字节
- 位(Bit)是计算机内部数据储存的最小单位,11001100是一个8位2进制数
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B表示
-
- 1bit就是1位
- 1Byte=8bit(位)
- 1024B=1KB
- 1024KB=1GB
- 1024GB=1T
- 字符:是计算机中使用的字母、数字、字和符号
从寻址能力来了解32位和64位系统
-
32位系统的最大寻址空间是2的32次方=4GB左右;
-
64位系统的最大寻址空间是2的64次方,数值大于1亿GB;
-
也就是说32位系统的处理器最大支持到4G内存;而64位系统最大支持高达亿位数,实际应用过程中大多数的32位系统最多只能识别3.5G内存,64G系统最多识别128G内存。
-
32位和64位意味着处理器一次能处理的最大位数。
-
而现在的32位处理器只能安装32位系统,64位处理器却能同时支持安装32位和64位系统
补充
整数
//整数拓展
//二进制 0b 八进制0 十进制 十六进制0x 0~9 A~F
int i=10;
int i1=010;//先将它转成8进制然后在进行结果输出--8
int i2=0b10;--2
int i3=0x10;--16
int i4=0xF;--15
浮点数
//浮点数类型-----银行业务拓展
float f=0.1F;
double d=1.0/10;
float f1=10.0F;
double d1=100.0/10;
System.out.println(f);---0.1
System.out.println(d);---0.1
System.out.println(f==d);----false
System.out.println(f1);-----10.0
System.out.println(d1);-----10.0
System.out.println(f1==d1);-----true
** 最好避免用浮点数类型作比较**
字符拓展
char a='a';
char b='中';
System.out.println(a);
System.out.println(b);
System.out.println((int)a);//强制转换
System.out.println((int)b);//强制转换
//所有的字符的本质还是数字
//编码 Unicode 占2字节 范围65536 Excel表格---2的16次方---655536
//U0000 UFFFF
char c='\u0097';//char后面一定要加dan yin hao,底层原理
System.out.println(c);
//转义字符
//\t制表符
//\n换行符
System.out.println("=======================================");
System.out.println("Hello\tWorld");
Hello World
System.out.println("Hello\nWorld");
Hello
World
布尔值
//布尔值 //if语句 if (flag){};//老手 if (flag==true){};//新手
运算符
-
算术运算符+,-,/,*,%(模运算),++,–
-
赋值运算符=
-
关系运算符<,>,<=,>=,==,!=,instanceof
-
逻辑运算符&&,||,!-----与,或,非
-
位运算符
-
条件运算符
-
拓展赋值运算符
算数运算符–二元运算符
long a1=123456; int a2=223; short a3=446; byte a=10; System.out.println(a1+a2+a3+a);//long类型 System.out.println(a2+a3+a);//int类型 System.out.println(a3+a);//int类型 double d=11.1; System.out.println(d+a);//Double 类型
关系运算符
//关系运算符结果 true 或者false---用布尔值表示 int a=10; int b=20; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b);
模运算
//模运算int a=20;int b=-30;System.out.println(a%b);//20System.out.println(b%a);//-10
注意:
- 取模支持对负数进行运算,且结果的符号总是与被除数的符号保持一致。
- 取模也支持对小数进行运算
- 两个小数也可以进行取模运算
一元运算符—自增,自减
//++ -- 自增,自减int i=1;System.out.println(i);//1int i2=i++;System.out.println(i);//2System.out.println(i2);//1/*以上代码说明先给i2赋值,然后i在自增1 */int i3=++i;System.out.println(i);//3System.out.println(i3);//3/*以上代码说明先将i自增1,然后在将i的值赋给i3 */
逻辑运算符
boolean i=true;boolean i2=false;System.out.println("i&&i2:"+(i&&i2));//两个都为真,结果为trueSystem.out.println("i||i2:"+(i||i2));//有一个为真,结果就是trueSystem.out.println("!(i&&i2):"+(!(i&&i2)));//去结果的相反值
短路运算
//短路运算int i=1;int i1=i++;System.out.println((i<0)&&(i1<3));System.out.println(i1);//结果为1,说明没有执行i++的代码
位运算符(针对二进制的位运算符)
位运算符:与&,非,或,异或
&:说明2个操作数都为1的情况下为1
int a=128;//1000,0000 int b=129;//1000,0001 System.out.println(a&b);
|:说明2个操作数有一个为1的情况下为1
package operator;public class Demo07 { public static void main(String[] args) { int a=128;//1000,0000 int b=129;//1000,0001 System.out.println(a|b); }}
~:如果是0,结果是1;如果位是1,结果是0(不懂)
^:相同为0,不同为1
面试题
为什么这样算的效率最高?
答:因为对计算机底层进行处理,方便计算机底层认识
关于运算符的补充
拓展赋值运算
int a=10;int b=20;int c;System.out.println(a*=b);//200System.out.println(a/=b);//10System.out.println(a+=b);//30System.out.println(a-=b);//10
注意:
注意代码的运算顺序
±-字符串连接符
//+-----字符串连接符int a=10;int b=20;System.out.println(""+a+b);//拼接System.out.println(a+b+"");//先计算a+b,在进行拼接
三元运算符
int money =10;String type= money>9? "支付成功":"支付失败"; System.out.println(type);
注意:
要给三元运算最后的结果定义一个数据类型,并初始化。
类型转换
Java是强类型 ,所以要进行有些运算的时候,需要用到类型转换
运算中,不同类型的数据转换先转化为同一类型,再进行计算
-
强制类型转换
//强制类型转换 (类名)变量名 高--->低 //自动类型 低--->高 //强制 int i=128; double b=(byte)i; System.out.println(b); //自动
-
自动类型转换
byte b1=100; int i1=b1; System.out.println(i1);
注意点
-
不能对布尔类型进行转换
-
不能把对象类型转换为毫不相干的类型
-
在高容量转换为低容量的时候,需要强制转换
-
转换的时候可能存在内存溢出,或者是精度问题
//内存溢出 int i2=128; byte b2=(byte)i2; System.out.println(b2);
//精度问题 System.out.println((int)23.7); System.out.println((int)12.37F);
-
浮点数类型数的优先级大于整数类型的优先级
jdk7特性和溢出问题
操作比较大的数字的时候,注意溢出问题
jdk7特性,数字之前可以用下划线分割,比如1_0000_0000
int money=10_0000_0000; int years=20; long total=((long)money)*years;//计算的时候已经溢出 long total1=total;//默认是int,并且内存在已经溢出,在转换以前已经存在问题了 System.out.println(total1);// long total2=((long)money)*((long)years); System.out.println(total2); long total3=money*((long)years); System.out.println(total3);
只需要转换一个变量即可
变量
概念:可以变化的量。
Java是强类型语言,每个变量的都必须生命其类型。
Java变量是程序中的最基本的单元,其要素包括变量名,变量类型和作用域
注意事项
- 每个变量都有类型,可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符
- 变量声明必须是一个完整的语句,因此每个变量都必须以分号结尾。
public class Demo03 { //类变量 前面借一个关键字“static”,从属于类 static double salary=1_0000;//类变量 int age; //实例变量:从属与对象,如果不自行初始化,这个类型的默认值是0或者0.0或者是\u0000; //布尔值的默认值是false //除了基本类型,其他引用类型的默认值都是null//main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值 System.out.println(salary);//类变量的调用 System.out.println(Demo03.salary); // System.out.println(age);实例变量不可以这样调用 Demo03 demo03=new Demo03();//实例变量的调用 System.out.println(demo03.age);//0 //局部变量 int years=100; System.out.println(years);//局部变量 }}
常量
概念:不可以变化的量。
注意:
-
单词大写用下划线”_“隔开
-
只能赋值一次
-
程序执行过程中不能改变
public class Demo04 { //static是修饰词,跟final的位置可以更换 static final double PI=31.14; public static void main(String[] args) { System.out.println(PI); }}
java程序运行机制
-
编译型:运行一次
-
解释型:可以随时解释一些东西的意思
程序运行机制