一、算数运算符
1.对于除号“/”,它的整数除和小数除是有区别的:当整数除以整数的时候,会把结果的小数部分舍弃,只保留整数部分,例如:
int x=3510;
x=x/1000;
输出结果为x=3;
2.++和--分别是加1和减1的运算,++或--在变量之前,先对变量进行运算再取变量的值;++或--在变量之后,先取变量的值,再对变量进行运算
3.如果对负数取模,可以把模数负号忽略不计,如:a=5%-2;a=1; 但是,被模数是负数则不可忽略,如:a=-5%2;a=-1;
4.“+”除字符串相加功能以外,还能把非字符串转化为字符串,例如System.out.println("5+5="+5+5); //打印结果为:5+5=55
5.char类型的数据是可以做数学运算的,在做数学运算的时候把字符转化为ASSCII码进行计算
二、赋值运算符
1.当“=”两侧数据不一样时,可以使用自动类型转换或者强制类型转换原则进行处理
2.“=”支持连续赋值
3在使用扩展赋值运算符时,变量在参与运算时会把结果自动强制转换成当前变量的类型
short s = 2;
s = (short)(s + 3); //变量在参与运算的时候,Java程序不知道具体的这个变量在做完运算后会不会超出当前变量的范围,所以会先把变量转换为一个更大长度
s += 3; //扩展赋值运算符,会把结果自动强制转换成当前变量的类型
三、比较运算符
1.比较运算符的结果都是boolean型,也就是要么是true,要么是false
2.比较运算符"=="不能够写成赋值运算符"="
四、逻辑运算符
1. & 逻辑与:
2. && 短路与:
3. | 逻辑或:
4. || 短路或:
5. ! 逻辑非:
6. ^ 逻辑异或:
注意:1.逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6这种格式,而应该写成x>3&x<6
2."&"和"&&"的区别:单&时,左边无论真假,右边都参与运算;
双&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
3."|"和"||"的区别:单|时,左边无论真假,右边都参与运算;
双||时,如果左边为真,右边不参与运算,如果左边为假,那么右边参与运算
五、位运算符
1.位运算是直接对二进制进行运算
2.有符号的右移是看右移之后的首位是0还是1,是0前面空位补0,是1就补1
3.无符号的右移,移动之后不管首位是0还是1,空位都是直接补0
六、三元运算符
格式:(条件表达式)? 表达式1 : 表达式2;
如果条件表达式为true,运算后的结果是表达式1;如果条件表达式为false,运算后的结果是表达式2;
例如:获取三个数中的较大数;
int m = 1;
int n = 2;
int k = 3;
System.out.print(m > n ? (m > k ? m : k) : (n > k ? n : k));
//条件表达式m > n
//表达式1:(m > k ? m : k)
//表达式2:(n > k ? n : k)
七、运算符的优先级
只有单目运算符、三元运算符、赋值运算符是从右向左运算的