第3章 操作符
名词
静态导入 static import
赋值
基本类型存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接讲一个地方的内容复制到了另一个地方。(值copy)
对一个对象进行操作时,我们真正操作的是对对象的引用。将一个对象赋值给另一个对象,实际是将“引用”从一个地方复制到另一个地方。
对象引用的赋值过程

方法调用中的别名问题
方法调用传递的还是对象的引用,方法作用域内复制其参数x的一个副本y,实际上只传递了一个引用,实际改变的是方法外的对象。

自动递增和递减
前缀式:++a, --a
后缀式:a++, a--
关系操作符
==和!=比较的就是对象的引用。
equals()默认行为是比较引用,除非在自己的新类中覆盖equals方法。
逻辑操作符
Java中不可将一个非布尔值当做布尔值在逻辑表达式中使用。
短路:即一旦能够明确无误地确定整个表达式的值,就不再计算表达式余下部分了。
直接常量
直接常量后面的后缀字符标示了它的类型。
L/l:long
F/f:float
D:double
十六进制:以前缀0x(或0X),后面跟随0-9或小写(或大写)的a-f来表示。
八进制:由前缀0以及后续的0-7的数字来表示。
二进制:没有直接常量表示方法。Integer.toBinaryString()可以获得二进制字符串。
按位操作符
按位与操作符&
按位或操作符|
按位非操作符~
按位异或操作符^
对于布尔值,按位操作符具有与逻辑操作符相同的效果,只是他们不会中途“短路”。
移位操作符
左移位操作符<<
右移位操作符>>
无符号右移位操作符>>>
注意最高位表示符号:0为正,1为负
三元操作符
boolean-exp ? value0 : value1
类型转换
除boolean以外,任何一种基本类型都可通过类型转换变为其他基本类型。
如果对基本数据类型执行算术运算或按位运算,只要类型比int小(即char,byte和short),那么在运算之前,这些值会自动转换成int。
表达式中出现的最大的数据类型决定了表达式最终结果的数据类型。
Java没有sizeof
在C和C++中,sizeof()操作符可以告诉你为数据项分配的字节数。
浙公网安备 33010602011771号