1.算术运算符
加法(+):
①:加法:计算两个数的和
②:正数:int b = +4;此时b为正数4
③:字符串连接符:
System.out.println(“a=”+a+”b=”+b)) ‘+’ 为字符串连接符号,不参与运算, 显示的 为 a=a,b=b
减法(-)
乘法(*)
除法(/)
①:要是两个整形数运算,则除数不为0,进行自然除法的结果是截断取整,例如:19/4=4,不是5
②:只要两个操作数有一个是浮点数,则计算结果就是自然除法的结果(浮点数),而且此时允许除数是0或者0.0,得到的结果是正无穷大或者负无穷大;两个整数相除要得到小数,可以*1.0求余(%)
求余运算的结果不一定总是整数,它的计算结果是使用第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数
负数对正数的取模结果为负数,正数对负数取模结果为正数,例如:-2%5= -2 -2 是被模数,5 是模数,负数的取模运算结果是不是负数看左边。- 自增(++)、自减(–)
自增运算符单独存放时,无论是放置在左边还是右边都是没有区别的
例如:b++; <==> ++b; 都是将b的初始值加一
参加其他运算时,b=++a => b=a+1;
b=a++; => {b=a; a=a+1;} 2.赋值运算符
符号:= , +=, -=, *=, /=, %=
其中 ‘=’ 是基本赋值号,把右边的结果赋值给左边,其他的为扩展运算符,例如:
“+=” 为加赋值,把左边和右边的结果赋值给左边。注意:左边不能是常量3.位运算符
一般来说,位运算符只能操作整数类型的变量或者值,且操作的是操作数的二进制码
运算符 运算 实例 << 左移 3<<2=12 ==> 3*2*2=12 >> 右移 4>1=2 ==> 4/2=2 >>> 无符号右移 4>>>1=2 ==> 4/2=2 & 与运算 6&3=2 | 或运算 6|3=7 ^ 异或运算 6^3=5 ~ 反码 ~6=-7 以下运算都是针对操作数二进制码
1、<<:就是将左边的操作数在内存中的二进制数据左移右边操作数指定的位数,右边被移空的部分补 0。相当于乘与 2 的倍数2、 >>:如果最高位是 0,左边被移空的位就填入 0;如果最高位是 1,左边被移空的位就填入 1。相当于除以 2 的倍数
3、>>>:无论最高位是 1 还是 0,左边被移空的高位都填入 0。相当于乘以或者除以 2 的多少次幂。
4、 &:任何二进制位和0进行‘&’运算,结果为0,和1进行’&’运算,结果为原值
5、 |:任何二进制位和0进行‘I’运算,结果为原值,和1进行‘I’运算,结果为1
6、^:两个二进制位相同结果为0,不同为1
7、 ~:按位取反,0变1,1变0, 6 取反 ~6+1=-6
4.比较运算符
符号:>、>=、<、<=、==、!=
==:如果进行比较的两个操作数是数值类型,即使数据类型不同,只要值相同,结果返回true,例如:97==’a’,结果为true
5.逻辑运算符
逻辑运算符一般用于连接 boolean 类型的表达式或者值。
表达式:就是用运算符把常量或者变量连接起来的符合 java 语法的式子。
①:算术表达式:a + b
②:比较表达式:a == b(条件表达式)
1. &(与):x>y & x < y两边都是true,结果为true,否则为false
2.|(或):x>y I x < y
两边都是 false,结果是 false,否则都是 true
3.^(异或):两边相同为false,两边不同为true
4.!(非):true=>false,false=true
5.“&”和“&&”的区别:
“&”:左边无论真假,右边都进行运算;
“&&”:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
6.“|”和“||”的区别同理,双或时,左边为真,右边不参与运算。6.三目运算符
格式:(关系表达式)?表达式 1:表达式 2 如:z=(x>y)?x:y
如果条件为 true,运算后的结果是表达式 1
如果条件为 false,运算后的结果是表达式 2
和 if else 的简写差不多,一定要返回一个变量或者值不能是其他语句运算符的结合性和优先级
运算符说明 Java操作符 分隔符 . [] () {} , ; 单目运算符 ++ – ~ ! 强制类型转换符 (type) 乘法/除法/求余 * / % 加法/减法 + - 移位运算符 << >> >>> 关系运算符 < <= >= > instanceof 等价运算符 == != 按位与 & 按位异或 ^ 按位或 | 条件与 && 条件或 || 三目运算符 ? : 赋值 = += -= *= /= &= ^= %= <<= >>= >>>=