一元运算符
一元运算符包括 ++,–
二元运算符
二元运算符指的是需要两个操作数才能完成运算的运算符;主要包括:+,-,*,/,%
二元运算符运算规则
- 整数运算
(1)如果两个操作数有一个为 long,则结果也为 long
(2)没有 long 时,结果为 int,即使操作数全为 short
2. 浮点运算
(1)如果两个操作数有一个为 double,则结果为 double
(2)只有两个操作数都是 float,则结果是 float
取模运算
其操作数可为浮点数,一般使用整数,结果是 ‘余数’,‘余数’ 符号和左边的操作数相同;例如:7%3=1,-7%3=-1
扩展运算符
主要是指 +=, -=, *= 等运算符
关系运算符
关系运算符用于比较运算,关系运算符的结果是布尔值:true 、false
注意
(1)= 是赋值运算符,== 才是判断两个操作数是否相等
(2)==,!= 对于所有(基本和引用)数据类型都可以使用
(3)>、>=、<、<= 仅对数据类型(byte/short/int/long,float/double 以及 char)可使用
逻辑运算符
短路与(&&) 和 逻辑与(&) 的区别
短路与(&&) 和 短路或(||) 采用短路的方式,从左到右计算,如果只通过运算符左边的操作数就能确定该逻辑表达式的值,则不会继续计算运算符右边的操作数,以提高效率;
如果下面 if 的表达式中的 短路与(&&) 切换为 逻辑与(&) 的话,那么左右两边的表达式都会执行,也就是说会输出 false … true … bbb
短路或(||) 和 逻辑或(|) 也一样
亦或:两边相同为 false,不同则为 true; 表达式为 ^
按位运算符
按位运算符作用于其操作数的各个位,可应用于整数:byte, char, short, int, long
- 按位非运算
在二进制中,最高位为1表示负数,最高位为0表示正数;按位非运算计算步骤如下:
a. 先取出该数字的二进制数
b. 取出该数字的反码
以 3 为例,按位非运算,得到 -4
a. 二进制数:0000 0000 0000 0000 0000 0000 0000 0011 这里的 3 是 int 型,所以是 32 位,最高位 0 表示正数
b. 反码: 1111 1111 1111 1111 1111 1111 1111 1100 反码,这里表示的10进制数是 -4 (最后的1100, 从左到右,第一个1表示负号)
<< 左移运算:3 << 2 等于 3 * 2^2 = 3 * 4 = 12
右移运算:4 >> 2 等于 4/(2^2) = 4 / 4 = 1
字符串连接符
字符串连接符即 ‘+’,该运算符两侧的操作数只要有一个是字符串,系统会自动将另一个操作数转换为字符串然后再进行连接
条件运算符
语法格式:x ?y :z;也叫三元运算符
其中 x 为 boolean 类型表达式,先计算 x 的值,如果为 true,则整个表达式运算的结果为 y 的值,否则为 z 的值