1.算数运算符
+ 加(正号) - 减(符号) * 乘 / 除
% 取模(取余) ++ 自增 -- 自减
+号的几种作用:
加法运算 表示为一个正数 还可以用来作字符串的拼接
整数相除只能得到整数。如果想得到小数,必须把参与计算的数据变化为浮点类型的数据。
自增和自减运算,在单独使用,效果是一样的。
在参与其它运算时:
++ 在前 当前数先 +1 ,在进行其它运算。
++ 在后 先进行其它运算,当前数在 +1。
-- 在前 当前数先 -1 ,在进行其它运算。
-- 在后 先进行其它运算,当前数在 -1。
常量不可以使用 自增和自减运算。
2.赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+= , -= , *= , /= , %=
扩展的赋值运算符,默认隐含了一个强制类型转换
常量不可以使用
3.比较运算符
== 相等于 != 不等于 < 小于 > 大于 <= 小于等于 >= 大于等于 instanceof 检查是否是类的对象
不管操作简单还是复杂,结果肯定是boolean类型。
instanceof 判断是否是类的对象 Eg : "hello" instanceof String; true
4.逻辑运算符
& (AND 与) | (OR 或) ^(XOR 异或)
!(Not 非) &&(短路与) ||(短路或)
用于连接结果为布尔型的表达式。
^(异或) 逻辑运算符 两边相同为 false 不同为true;
单 &,运算符左边无论真假 右边的表达式都进行运算。
双 &&,运算符左边为真,右边的表达式参与运算;如果运算符为假,右边的表达式则不再参与运算(提高了程序的执行效率)。
| 和 || 同理,||左边的表达式为真后面的表达式子则不进行运算。
!(Not 非)可以写多个,单数个为反,偶数个不变。
5.位运算符
<< 左移(有符号) >> 右移(有符号) >>> 无符号右移
& 位与运算 | 位或运算 ^ 位异或运算
~ 按位取反运算符
要做位运算,首先要把数值转化为二进制。
计算机在操作数据的时候 都是对补码进行操作的。
& : 将两个数转化成二进制数的补码,然后对应的每一位作与运算。有0则0,做完运算转回原码 最后将这个二进制数转成十进制;
| : 将两个数转化成二进制数的补码,然后对应的每一位作或运算。有1则1,做完运算转回原码 最后将这个二进制数转成十进制;
^ : 将两个数转化成二进制数的补码,然后对应的每一位作异或运算。同0则1.
做完运算转回原码 最后将这个二进制数转成十进制; 某一个数据对另一个数据位异或两次,其结果不变;
~ : 将一个数转化成二进制数补码,然后对每一位取反,即1变0,0变1. 做完运算转回原码 最后将这个二进制数转成十进制;
<<:>
正数扩大为:<
>>:将符号前面的一个数转化成二进制数补码 然后最高位为0补0,为1补1,补符号后面数个数个0或1,将这个数转为原码,在转成十进制数。
正数缩小为:>>前面的数除以2的<>前面的数除以2的<
>>>:将符号前面的一个数转化成二进制数补码,不管符号位直接在最高位补零。补码转成原码,最后将这数转成十进制。
6.三目运算符(三元运算符)
格式:
(表达式) ?表达式1:表达式2;
表达式的结果为boolean类型。
如果表达式为:true 就把表达式1作为结果。
如果表达式为:false 就把表达式2作为结果。