一、在最底层,Java中的数据是通过使用操作符来操作的。
二、equals()方法不适用于“基本类型”,基本类型直接使用 == 或者 != 即可。
三、当使用逻辑操作符时,可能会遇到短路现象,即一旦能够明确无误地确定整个表达式的值,就不再计算表达式余下部分了。
四、直接常量后面的后缀字符标志了它的类型
八进制数以前缀0以及后缀的0-7的数字来表示
十六进制数适用于所有整数数据类型,以前缀0x,后面跟随0-9或小写的a-f来表示。
五、C/C++/Java中,用e来表示“10的幂次”
六、按位操作符:或 | 与 & 非 ~ 异或 ^
非也叫取反,只能对一个操作数进行操作,所以不可以和 = 联合使用。
七、“有符号”右移位操作符使用“符号扩展”:若符号为正,则在高位插入0,若符号为负,则在高位插入1
Java中新增加了一种“无符号”右移位操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0
如果对char、byte、或者short类型的数值进行移位处理,在移位之前,会被转换成int类型,并且得到的结果也是一个int类型的值。
一个long类型的数值进行处理,最后得到的结果也是long类型的。
如果对byte或short值进行这样的移位运算,得到的可能不是正确的结果。
八、三元操作符if-else 他是操作符中的一种,因为它最终也会生成一个值
boolean-exp? value0 : value1
如果boolean-exp的结果为true,就计算value0,并且表达式的结果就是该操作符的值,反之亦然。
九、+和+=在Java中有特殊的用途,就是连接字符串
如果表达式以一个字符串起头,那么后续所有操作数都必须是字符串型
可以使用一个空的string后面跟随+和一个基本类型的变量,来执行字符串的转换
十、在类型转换时,窄化转换有可能面临信息丢失的危险,在进行窄化转换的时候,必须注意截尾与舍入的问题,例如27.6转化成int的时候结果就为27
通常,表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。
十一、Java中没有sizeof