一、算术运算符
+左右两侧都要是操作数
”/“:向0取整,运算中若操作数均为整形,则结果也为整形;若其中有一个为实型,则结果为双精度实型,注意除0问题
”%“:取余,运算中操作数必须均为整形,结果取整,取模运算的结果看被除数,被除数是负数,结果就是负数
a+=5->a=a+5
二、字符串连接符:+
"+"除了作为加号外,还可以作为字符串连接符
”+“左右两侧只要有一侧是字符串就是字符串连接符,两侧的操作数只要有一个是字符串,系统自动将另一个操作数转换成字符串再进行连接
三、关系运算符
关系运算符的返回结果是boolean类型
前序增减:先运算再赋值 b=++a;
后序增减:先赋值再运算 b=a++;
四、逻辑运算符
逻辑与:&&
逻辑或:||
逻辑非:!(单目运算符)
&&和&,两侧都为true结果才为true
&&为短路与,左侧错了右侧就不再运行,而&会继续运行
&还可以作为位运算符,进行位运算
&逻辑与:布尔类型
&按位与:整数类型
表达式有值和类型
c=a^b:相同为假,不同为真
2<<2:将2变为二进制10,并向左移两位1000
五、位运算符
&:按位与 |:按位或 ^:按位异或
~:取反 <<:左移 >>:右移
注:操作数只能为整型或字符型
六、条件运算符
条件运算符是唯一的三目运算符
一般形式为x?y:z
说明:x为boolean类型表达式,计算x的值,若为true,则整个表达式的结果为y;否则为z
条件表达式:max=a>b?a:b
七、运算符的优先级
优先级 | 运算符 |
1 | . [] () |
2 | ++ -- ~ !(数据类型) |
3 | * / % |
4 | + - |
5 | << >> >>> |
6 | < > <= >= |
7 | == != |
8 | & |
9 | ^ |
10 | | |
11 | && |
12 | || |
13 | ?: |
14 | = *= /= %= += -= <<= >>= >>>= &= ^= |= |
八、必考题
1.+号的作用
(1)算术运算符,进行算术运算,+左右两侧都要是操作数
(2)字符串连接符,进行字符串拼接。+左右两侧只要有一侧是字符串就是字符串连接符
(3)+表示正号
2.下列代码有错误吗?如果有说出错误,如果没有则输出结果
byte a=127;
a += 1;
a = a+1;
答:上述第三行代码报错,原因是1是int 类型的数据,在进行计算的时候会将a+1全部转换为int类型进行计算,计算完再给a赋值的时候会发生报错,所以修改后的代码是a=(byte)(a+1);第二句不报错的原因是a += 1,实质等价于a=(byte)(a+1);默认带强制转换所以不报错,修改后输出时发现数值超过了byte的取值范围,发生了数据溢出,解决方法跟上述一致,所以最后输出结果为-127