JAVA的 运算符
一、算术运算符:+ , - , * , /,%,++,–,+=,-=,*=,/=
/
因为把正数默认为int进行计算,故
System.out.println(3/5) 打印0
System.out.println((float)3/5) 打印0.6
System.out.println((float)(3/5)) 打印0.0
因为除数不能为零,故
System.out.println(3/0) 整数编译不出错 打印出错
System.out.println(0/0) 编译不出错 打印出错
System.out.println((3f/0) 浮点型非0除以0 打印 Infinity(无限)
System.out.println((0f/0) 浮点型0除以0 打印 NaN(不是一个数字)
%
4%2=2 错误
除数不能和结果相同,4%2=0
特殊情况
System.out.println(4%0) 编译不出错 打印出错
System.out.println(0%0) 编译不出错 打印出错
System.out.println(4f%0); 打印 NaN
System.out.println(0f%0); 打印 NaN
++
a++ 和a=a+1不同 地址不同
a++和++a不同
a++:先要参加到程序运行中之后再会开始执行+1
++a:先要执行+1的操作,然后再会进行程序
a++ + ++a
--
a-- 和a=a-1不同 地址不同
byte a=-128 a–打印127 ;a=a-1会报错
a-- - --a =2
+=
a+=3 是原地址加减 ,和a=a+3不同, a+=3 的地址不变
二、位运算符: >> << >>> & | ~ ^
>>
右移即除2
例如a>>1右移一位
byte =127; System.out.println(a>>1) 打印出63
<<
左移
>>>
和>>区别
1.正数用>> 和>>>结果一样
2.负数用>> 和>>>结果不一样,符号为 >>根据正负前面补1或者0 >>>前面直接都补0
&
与 两个必须满足
考点
3&4 打印出0
求773%16 用(i &15)
判断奇偶数 用(i &1) 结果 的1为奇数 的0为偶数
|
~3000打印出-3001 ~8打印出-9
^
二进制 ^表示左右不同是1 相同是0
例如:3^4
3的二进制是 0000 0011
4的二进制是 0000 0100
3^4得到00000111 换算为十进制是7
三、关系运算符:== != > < >= <=
得到结果都是真或者假 boolean flag =true;(false)
四、逻辑运算符: & | && || !
&
前面是false 后面也执行
&&
前面是false 后面不再执行
|
前面是true 后面也执行
||
前面是true 后面不再执行
五、特殊运算符:() = Boolean?分支1: 分支2
()
优先级运算符
=
赋值运算符是优先级最低的运算符
Boolean?分支1: 分支2
三目运算符(真走分支1,假走分支2)
六、运算符顺序:
1.按照 算数运算符 位运算符 关系运算符 逻辑运算符 特殊运算符
2.单目运算符 !++ – 的优先级高于多目运算符