算数运算符:
+,-,,/,%(取余),++,–,+=,-=,=,/=。
System.out.println(a+=3);只有加=才会在新地址上赋值。
System.out.println(a+4);不会报错,因为是一个int值,只要加完没有赋值
回去就可以显示。
算数运算符属于语意部分。
位运算符:
指操作整形数字字节中的位而存在的运算符。
- 【>>】System.out.println(>>n) ; 右移n位,符号位不变。
【<<】System.out.println(<<n); 左移n位,符号位不变。
【>>>】System.out.println(>>>n) ;右移n位,符号位随之改变。
【&】System.out.println(15 & 12) =12;与的意思,0代表假1代表真。只有同真为真,也就是只有两个值的二进制同位都为1才会输出1。
【|】System.out.println(15 | 12)=15;或的意思,0代表假1代表真。只有同假才为假,也就是只有两个值的二进制同位都显示0才会输出0.
【^】System.out.println(15 | 12)=3;异或的意思,0代表假1代表真.同为假,异为真,也就是说两个值的二进制同位相同则输出0,同位不同则输出1.
【 ~ 】System.out.println(15)=-16;System.out.println(-12)=11; 非的
意思,也就是取反,真为假,假为真。也就是说值的二进制每位为1则
输出0,为0则输出1。
/二级制的负数表达为首位为1,其它位为原码的补码,也就是按位取反再
在末尾加1。/
关系运算符: ==,>=,<=,!=
- == 等于
>= 大于等于
<= 小于等于
! = 不 等 于
> 大 于
< 小 于
逻辑运算符:
【&】System.out.println(a & b);逻辑与的意思,也就是说a,b都为true时输
出true ;否则都输出为flase。
System.out.println(1<2&2>4)=true;
System.out.println(1<2&1>2)=flase;
【&&】System.out.println(a && b); 短路与的意思,和&的逻辑与大致相同,
而&&和&的区别为&会判断完a为flase后还会去判断b,而&&判断完a为flase后就不
会取判断b,当b出现逻辑问题时&会报错,而&&因为不去判断b所以不会报错,也
就称为短路与。
System.out.println(1<2 & 100/0<2);报错
System.out.println(1<2 && 100/0<2);输出为flase
【|】System.out.println(a | b);逻辑或的意思,也就是说只有当a,b都为
flase时会输出flase,否则都输出为true.
【||】System.out.println(a||b);短路或的意思,和|的逻辑或大致相同,而|
和||的区别为|判断a为true后还会判断b,而||判断a为true后就不会去判断b了,
也是报错的问题。同&和&&
【!】System.out.println(!a);逻辑非的意思,也就是取反,a为true时值为
flase,a为flase时值为true。可参考位数运算符的~。
System.out.println(!1<2);输出为flase
System.out.println(1>2);输出为true
特殊运算符:
三 目 运 算 符:boolean?分支1:分支2
boolean?a:b : boolean为true则输出a,为flase则输出b
int a =2,b=3,c=1
System.out.println(a>b?(a>c?a:c):(c>b?c:b));
输出为3
优先级运算符:"()"的优先级为最高的,赋 值 运 算 符:“=”的优先级为最低
算数的优先级大于关系大于逻辑,目数低的运算符优先级大于目数高的运算符。