java运算符
算数运算符
算数运算符
:+(加),-()减,(乘),/(除),%(取余),++(自增),–(自减);
算术运算中数据类型的提升(提升到表数范围大的类型空间做运算)
1)有double:提升到double;
2)没有double,有float:提升到float;
3)没有double,没有float,有long:提升到long;
4)没有double,没有float,没有long,有int:提升到int;
5)没有double,没有float,没有long,没有int,只有byte,short,char:提升到int;最低是int类型。
赋值运算符
基本赋值运算符
= (等于)
扩展赋值运算符
扩展赋值运算符 +=(加等于),-=(减等于),=(乘等于),/=(除等于)
扩展赋值运算符是算术运算符和基本赋值运算符的结合。优点:1.简单;
2.编译速度快;
3.扩展赋值运算隐含了强转。
关系运算符
关系运算符:
(1)>,<,>=,<=;
(2),!=
操作数:
(1)>,<,>=,<=; 数值型:整型,浮点型,字符型;
(2),!=;基本数据类型和引用数据类型;
结果:布尔值;
逻辑运算符
逻辑运算符:
(1)&(与),|(或),^(异或),!(非)
(2)&&(短路与),||(短路或);
逻辑与&的运算规则:只有两个操作数都是true时,结果才是true;只要有一个操作数是false,结果是false。(1 true 3 false)
逻辑或|的运算规则:只有两个操作数都是false时,结果才是false;只要有一个操作数是true,结果是true。(3 true 1 false)
逻辑异或^的运算规则:两个操作数相同时,结果是false;两个操作数不同时,结果是true。(2 true 2 false)
逻辑!的运算规则:取反
位运算符
(1)&,|,^,~
通过二进制进行计算System.out.println(5&6);//4;
System.out.println(5|6);//7;
System.out.println(5^6);//3;
System.out.println(~6);//-7
System.out.println(~(-7));
//如果一个数和另外一个数异或两次,还是原来的数;可以用作加密解密;
System.out.println(566);
System.out.println(533);
(2)<<(左移),>>(右移),>>>(无符号位右移)
<<:左移,左移n位,相当于乘以2的n次方,右边空位补0;
:右移,右移n位,相当于除以2的n次方,左边空位补符号位;
16:000…0001 0000;
16<<1: 000…0010 0000;右边空位补0;
16>>1: 000…0000 1000; 左边空位补符号位;
条件运算符
条件运算符:x ? y : z,三个操作数:x,y,z;
x:布尔表达式;如果是true,整个表达式的值就是y;如果是false,整个表达式的值就是z;
运算符的结合性
运算的结合性:表达式里的运算符优先级相同,是从左往右算还是从右往左算? (运算符优先级相同,从右向左运算)
5>6?‘a’:‘b’>‘c’?‘c’:‘d’:从右往左;
int x=y=z=10;从右往左;
运算符的优先级
赋值<三目<逻辑<关系<算术<单目