1、 算术运算符
使用除数或取余时,应注意不能使用整数除于0,否者会出错
System.out.println(a/0); // java会报出这个错误 → / by zero
但是被除数或除数存在一个浮点数,除于0有3种情况
注意:自增(自减)在前面和在后面的区别:
++y(–y):先将 y 的值自增(自减)1,然后再在当前表达式中使用 y 的值。
y++(y–):先在当前表达式中使用 y 的值,然后再将 y 的值自增(自减)1。
2、 关系(比较)运算符
在java中 ==在基本数据类型的时候是比较值,但在引用类型中比较的是储存地址。
原因在于str与str1的对象不同,所以存放的位置也不同,因此为false。
而str与str2,str2java直接识别它为string类型的123,在java中,存在一个常量池,当我们创建123字符串时,java会在常量池中去寻找,若没有则创建一个,当发现常量池中已存在,那么就会重复使用,目的节约内存,因此存储位置相同,则为true。
因此在比较引用类型的值时,通常用的equals方法。
3、 逻辑运算符
&&与&的区别:&&短路 、&不短路
||与|的区别和以上相同,||短路、 |不短路:
!与^的试例:
4、 赋值运算符
5、 其他运算符:
(1) 三目运算符:
三目运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
(2) instanceof 运算符:
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
6、 运算符的优先级