------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
整形常量 小数常量 布尔常量 空常量 字符常量 字符串常量
byte
范围
-128 ~ 127
不同进制的数据组成
二进制
由
0,1
组成。以
0b
开头。(
1.7
以后的版本,基本没有怎么用)
八进制
由
0,1,
…
7
组成。以
0
开头
十进制
由
0,1,
…
9
组成。整数默认是十进制的
十六进制
由
0,1,
…
9,a,b,c,d,e,f(
大小写均可
)
。以
0x
开头
§ 运算中容量小的类型与容量大的类型进行计算,默认转换为容量大的数据类型;数据类型按容量大小排序为:
§ Byte , short , char -> integer ->long->float->double
思考:哪句是编译失败的呢?为什么呢?
byte b1=3,b2=4,b;
b = b1 + b2 ;
b = 3 +4 ;
解答:
b = b1 + b2 ;
o (1)byte ,short ,char
三种数据类型在内存中运算的时候会自动类型提升为
integer
去运算
o (2)b1
和
b2
是两个变量值
, jvm
无法判断里面值的大小
b=3+4;
o java
编译器有常量优化机制
,
在编译的时候已经将
3+4
的结果赋值给
b
了
逻辑与和逻辑或
单逻辑与运算
&
两边都要运算
双逻辑与运算
&&
左边为假 者右边不参与运算;
逻辑或的单和双同上
一个数被另一个数异或两次等于本身
无符号右移无论高位是什么 高位都是补
0
有符号右移高位是负数就补
1
正数补
0
* &&和&的区别?
* a:最终结果一样。
* b:&&具有短路效果。左边是false,右边不执行。
* a:最终结果一样。
* b:&&具有短路效果。左边是false,右边不执行。
* 位异或运算符的特点
* ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
* ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
* <<:左移 左边最高位丢弃,右边补齐0
* >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
* >>>:无符号右移 无论最高位是0还是1,左边补齐0
* >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
* >>>:无符号右移 无论最高位是0还是1,左边补齐0
Byte int char short 枚举 字符串(1.7以后) 可以作为switch表达式
Int b = 0; b = b++ ; System.out.println(b);
结果为 0;