字符串中每个字符都是16位(2个字节)
用static声明的属性或方法不需要通过该类的对象实例就能直接调用,但同时该static方法也不能调用其他非static的方法;非static的属性或方法只能通过实例化该类对象后,才能调
用
对主数据类型的赋值是非常直接的。由于主类型容纳了实际的值,而且并非指向一个对象的句柄,所以在为其赋值的时候,可将来自一个地方的内容复制到另一个地方。例如,假
设为主类型使用“A=B”,那么B 处的内容就复制到A。若接着又修改了A,那么B 根本不会受这种修改的影响
但在为对象“赋值”的时候,情况却发生了变化。对一个对象进行操作时,我们真正操作的是它的句柄。所以倘若“从一个对象到另一个对象”赋值,实际就是将句柄从一个地方复制到
另一个地方。这意味着假若为对象使用“C=D”,那么C和D最终都会指向最初只有D才指向的那个对象,此时修改该对象某个属性时,C和D同时会发生改变
算术运算符(+,-,*,/,%)
前缀运算符(++A,--A)会在表达式生效之前进行运算;后缀运算符(A--,A++)会在表达式生效之后进行运算
int i = 1;
prt("i : " + i); i : 1
prt("++i : " + ++i); ++i : 2
prt("i++ : " + i++); i++ : 2
prt("i : " + i); i : 3
prt("--i : " + --i); --i : 2
prt("i-- : " + i--); i-- : 2
prt("i : " + i); i : 1
关系运算符(<,>,<=,>=,==,!=)主类型比较相同使用==,!=;若想对比两个对象的实际内容是否相同,必须使用所有对象都适用的特殊方法equals()
自己写的类,如果没有重写equals()方法,则默认比较的是对象句柄是否相同,但绝大多数java类库都帮我们重写好了equals()方法,比较的是对象的内容
逻辑运算符(&&,||,!),有可能出现短路状态,即&&操作只要之前存在false则后面操作不再进行比较,||操作只要之前存在true则后面操作不再进行比较
按位运算符按位运算符允许我们操作一个整数主数据类型中的单个“比特”,即二进制位。按位运算符会对两个自变量中对应的位执行布尔代数,并最终生成一个结