第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()操作符可以告诉你为数据项分配的字节数。

 

 

posted @ 2012-11-01 02:10  小鸟犇  阅读(51)  评论(0)    收藏  举报