1、 自动递增和递减:++/---
前缀式:操作符位于变量或表达式前面,先递增/减,后赋值,然后执行外部运算
后缀式:操作符位于变量或表达式后面,先执行外部运算,后递增/减,然后赋值
2、 ==/!=:比较的是对象的引用;比较的是在栈中的位置;
equals():比较的是对象的实际内容;比较的是栈中所存储的内容;
3、 直接常量:
1D:D代表double 200L:L代表long
1F:F代表float
16进制前缀0x/0X后跟0-9和大写/小写的a-f来表示
8进制前缀0以及后续的0-7来表示
4、 按位操作符:
&与:两个位都是1,输出1,否则输出0
|或:两个位有一个是1则输出1,只有两个位都是0才输出0
~非:取反,只针对一个位进行操作
^异或:不同则输出1,相同输出0
5、 移位操作符:只能操作int类型
左移位操作符:操作数<<位数,左移则低位补0
右移位操作符:操作数>>位数,
有符号--右移位操作符:符号为正则高位插0,符号为负则高位插1
无符号--右移位操作符:无论正负,高位插0
6、 移位操作注意事项:
char/byte/short类型进行移位操作时,在移位之前先转换为int类型且结果也是int类型,只有数值右端的低5位才有用;
long类型处理最后结果还是long,只有数值右端的低6位才有用;
7、 截尾:float或double转型为int时,对数字执行截尾即小数全部舍弃,想要四舍五入则可以使用java.lang.Math.round()方法
8、 提升:char/byte/short会自动转换成int类型,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型;