JavaSE第二天20160804
数据类型
- JAVA只有两种数据类型:基本数据类型,引用数据类型。
- 基本数据类型:8种
a) 整数:JAVA没有无符号的数字。JAVA的整数可以为十进制,八进制(用0开头),十六进制(用0X或0x开头),不能表示二进制。
l byte:1个字节,-27~~27-1
l short:2个字节,-215~~215-1
l int:4个字节,-231~~231-1,JAVA中的整数默认为int类型。
l long:8个字节,-263~~263-1,在整数的后面加L或l,表示long类型。
b) 浮点数:在JAVA中浮点数的运算会产生误差。
l float:4个字节,在浮点数后面加F或f。
l double:8个字节,JAVA中浮点数默认为double类型。
c) 字符类型:char,字符必须放在一对单引号中,并且单引号中只能有一个字符。JAVA使用Unicode编码集,所有的字符都为两个字节。
d) 布尔类型:boolean,只有两个值:true/false。JAVA中boolean不能转换为其它类型。
- 变量:
a) 格式:数据类型 变量名[=值];
b) JAVA是强类型的语言。
c) 变量没赋值时不能使用,否则编译失败。
d) 在同一个范围中不能出现同名的变量。
e) 标识符(类名,变量名,方法名,包名等)的命名规范:
l 标识符由字母,数字,下划线,美元符组成。
l 不能使用数字开头。
l 不能使用关键字(JAVA中关键字均为小写)。
f) JAVA命名规范:变量名均为小写。如果变量名由多个单词组成,从第二个单词开始,每个单词首字母大写,其它均为小写(如:userName,userAge,password)。
- 常量(最终变量):使用final关键字,常量只能赋值一次。
- 基本数据类型的类型转换:
a) 比较基本数据类型的大小:先比较精度,如果精度一样,再比较长度。
b) 自动转换:JVM会自动将小类型转换为大类型。
c) 手动转换(强制转换):使用(类型)的方式将大类型转换为小类型。
- 运算符:
a) 算术运算符:+,-,*,/,%,++,--
l 算术运算结果的类型:
- 当算术运算的元素类型相同时,结果的类型一定与运算元素的类型保持一致。
- 当算术运算的元素类型不同时,结果的类型一定与运算元素中类型大的元素的类型一致。
short s = 1;//将值在类型的取值范围内时,JVM会自动转换值的类型
s = s + 1;//1为int类型,s为short类型,结果为int类型,而int不能直接赋给short类型
- ++/--可以放在变量的前面,也可以放在变量的后面。
- 无论出现在变量的前面还是后面,代码执行后变量一定会加1或减1。
- ++/--出现在变量前面:先运算,再取值。
- ++/--出现在变量后面:先取值,再运算。
//交换两个变量的值(不使用第三个变量)
x = x + y;
y = x - y;
x = x - y;
System.out.println(x);
System.out.println(y);
b) 比较运算符:>,>=,<,<=,==,!=,比较运算的结果一定为boolean。JAVA中不是所有的类型都可以使用比较运算符进行运算的,如:boolean与其它类型不能比较。基本数据类型与引用数据类型不能直接比较。
c) 逻辑运算符:结果一定为boolean类型
l 逻辑与(&)、逻辑或(|)
与运算(并且) |
或运算(或者) |
|||||
元素1 |
元素2 |
结果 |
元素1 |
元素2 |
结果 |
|
T |
T |
T |
T |
T |
T |
|
T |
F |
F |
T |
F |
T |
|
F |
T |
F |
F |
T |
T |
|
F |
F |
F |
F |
F |
F |
l 短路与(&&,当第一个表达式为false时,不执行第二个表达式,直接返回false)、短路或(||,当第一个表达式为true时,不执行第二个表达式,直接返回true)
l 逻辑非(!):取反。
d) 扩展运算符:+=,-=,*=,/=,%=,扩展运算符会自动将结果转换为需要的类型。
short s = 1;
s += 1;//正确,+=会自动转换类型
e) 三元运算符(三目运算符):x?y:z; 当x为true时,返回y的值。当x为false时,返回z的值。