1.String类支持“+”和“+=”操作符:“+”在String运算中,意味着字符串连接。如果String类与非String类相加,则编译器会尝试将非String类转换为String类。所以在基本数据类型转换为String类型过程中,有一种非常巧妙的方法将非String的基本类型转换为String,操作如下
int a=100;
String s=a+"";
2.赋值
基本数据类型的赋值很简单,即将等式右边的值赋值给左边。
对象赋值语句只是将对象的引用赋值给等式左边,等式两次所引用的是同一个的对象。所以当任何一方对对象进行修改时,另外一方也会受到影响。
3.算术操作符
整数除法会直接舍弃小数位,而不是四舍五入。
x+=4,表示将x+4后的值再赋给x。
4.自动递增与递减操作符
前缀++与后缀++的区别,++i表示i先执行递增操作,然后再去参与运算;i++表示i先参与运算,再执行递增。
5.关系操作符
==与!=比较的是对象的引用,如果两个对象的引用不是同一个对象,那么它们就不相等(不管两个对象的实际内容是否相等)。可以使用覆盖的equals()方法(默认的equals还是比较引用)比较两个对象的实际内容,其不适用于基本数据类型。
6.逻辑操作符
短路问题--表达式提前结束
7.直接常量
1.39e-43=1.39*10的-43次方。编译器会通常将指数表达式当作double类型处理。
8.按位操作符
与(&)、或(|)、异或(^)、非(~)
9.移位操作符
左移位操作(<<)按照右侧指定位数对左侧操作数进行左移位且在低位补0
“有符号”右移位操作(>>)按照右侧指定位数对左侧操作数进行右移且如果操作数为正则高位补0,否则高位补1.
无符号右移位操作(>>>)高位补0
10.类型转换
窄化转换:必须显式表达,可能会引起信息丢失
扩展转换:不必显式表达
大往小转,截尾。
小与大运算,提升(小的数据类型会转为大的数据类型再进行运算)。