一、算术运算符
1. + :加法运算符/字符串连接符
2. - :减法运算符
3. * :乘法运算符
4. / :除法运算符
5. % :取余/取模运算符
注 :1、java中两个整数相除,结果只保留整数部分,丢弃小数部分;
若想保留小数部分:(1)使用强制转换,将其中一个操作数转换为double类型
(2)让其中一个操作数乘以 1.0 (推荐使用)
2、0不能作为除数
3.只要+两边有一个操作数是字符串类型,则该+代表字符串连接符,否则代表加法算术运算符
例 : 将3666秒钟(整数)转换为时分秒 : 转换为时:3666/3600 = 1hour
3666%3600/60 = 1min(minute)
3666%60 = 6sec(second)
二、关系(比较)运算符
1. > : 表示是否大于运算符 2. >= : 表示是否大于等于运算符
3. < : 表示是否小于运算符 4. <= : 表示是否小于等于运算符
5. == :表示是否等于运算符 6. != : 表示是否不等于运算符
注 :以关系运算符作为最终运算的表达式结果一定是boolean类型(结果只有true/false)
三、自增减运算符
1. ++ : 表示自增运算符,用于使当前变量自身的数值加1
2. -- : 表示自减运算符,用于是当前变量自身的数值减1
注 :1、 自增运算符只能用于变量,不能用于常数
2、int ia = 10;(声明一个变量ia并初始化)
ia++ / ++ia; (表示给ia的数值加1,并覆盖原来的数值)
其中ia++这个整体叫做表达式,ia叫做变量(操作数), 两者表示不同的含义,因此所占的内存空间也不同
前++与后++的区别 : 后++是指先把ia的值作为ia++整个表达式的结果,然后再给ia变量自身的值加1;
前++是指先给ia变量自身的数值加1,然后再把变量的数值作为++ia整个表达式的结果
四、逻辑运算符
作用:主要用于连接多个关系运算符作为最终的表达式,用于实现多条件的连接
1、&&:表示逻辑与运算符,相当于“并且”,同真为真,一假为假
2、||:表示逻辑或运算符,相当于“或者”,一真为真,同假为假
3、!:表示逻辑非运算符,相当于“取反”,真为假,假为真
注:逻辑运算符的短路特性:对于&&运算符来说,若第一个表达式为假则为假,此时跳过第二个表达式
对于||运算符来说,若第一个表达式为真,此时跳过第二个表达式
五、条件(三目)运算符
1、语法格式:条件表达式?表达式1:表达式2
2、判断条件表达式是否成立,若成立,则执行表达式1,否则执行表达式2
(适用于两个数找最大值)例:int max = (ia > ib)?ia:ib
六、赋值运算符
1、=:表示赋值运算符,用于将等号右边的数据赋值给等号左边的变量,并覆盖变量原来的数值
2、复合赋值运算符:+=、-=、*=、/=......
3、赋值表达式本身也有值,其本身之值即为所赋之值 例:ia = 5;整体叫做赋值表达式,值为5
注:例:byte b1 = 10;b1 += 2;等价与 b1 = (byte)(b1 + 2);
若编译器默认的整数类型为int,那么上述表达式仍然成立,但是 b1 = b1 + 2;/b1 = b1 + (byte)2;都会报错!!!
七、移位运算符
1、<<:左移运算符,用于将数据的二进制位向左移动,右边使用0补充
2、>>:右移运算符,用于将数据的二进制位向右移动,左边使用符号位(非负数为0,负数为1)补充
3、>>>:逻辑又移运算符,用于将数据的二进制位向右移动,左边使用0补充(不考虑符号)
注 : 左移一位相当于当前整数的数值*2,左移两位相当于当前整数的数值*4……以此类推
右移一位相当于当前整数的数值/2,右移两位想当与当前整数的数值/4……以此类推
逻辑右移,对于非负数来说,逻辑右移和右移的效果一致
八、位运算符(可以把1当做真,0当作假)
1、&:按位与运算符,按照二进制位进行与运算,同1为1,一0为0
2、|:按位或运算符,按照二进制位进行或运算,一1为1,同0为0
3、~:按位取反运算符,按照二进制位进行取反,1为0,0为1
4、^:按位异或运算符,按照二进制为进行异或运算,同为0,不同为1
九、运算符的优先级:()的优先级极高,=的优先级极低,如果无法确认优先级,则使用()来确保即可。
从上往下优先级一次降低!!!
十、总结
1.算术运算符 :+ - * / %
2.字符串连接符 :+
3.关系运算符 :> >= < <= == !=
4.自增减运算符:++ --
5.逻辑运算符 :&& || !
6.条件(三目)运算符 :条件表达式?表达式1:表达式2
7.赋值运算符 := += -= *= 等等
8.移位运算符 :<< >> >>>
9.位运算符 :& | ^ ~
10.运算符优先级:三句话!