1、算数运算符: 正、负 + -
加、减、乘、除、取模 + - * / %
自加、自减 ++ --
字符串连接 +
2、算数运算符应该注意的问题
对于取模“%”:结果和第一个数字符号相同,不一定是整数 5 % (-2) = 1 -5 % 2 = -1 5.0 % 2 = 1.0 5 % 2.0 = 1.0
对于除号“/”: 整数之间做除法只保留整数部分(和小数不同) 5 / 2 = 2 5.0 /2 = 2.5
对于加号"+”:除了字符串相加功能外,还能把非字符串转成字符串 System.Out.print(“5 + 5 = ” + 5 + 5) //5 + 5 = 55
字符计算的是它的Unicode码,同时也要考虑就近原则。
例如: char a ='a';
char b = 'b';
System.Out.print(a + b +"hello") //195hello
System.Out.print"’hello" + a + b) //helloab
算数运算符++、--:单独使用放在操作数前面和后面一样
++x(前++):先自增再运算
x++(后++):先运算再自增
例如:int x = 4;
int y = (x++) + (++x) + (x*10)
//70 = 4 + 6 + 6*10 最后y值为70,x值为6
3、赋值运算符
“=” : 当“=” 两边数据类型不一样时自动 提升或强转
复合赋值运算符 += 、 -= 、/= 、*= 、%=
a += b 等价于 a = a+b 注意:复合赋值运算符可以自动强转
例如:
byte b =1 ;
int a = 1;
b = b + a; //报错,需要强转 b = (byte)b + a
b+= a //不报错,自动强转
自动将double 强转为int,砍掉小数部分。
例如:
int i = 1;
i *= 0.1
System.Out.print(i) // 0
4、比较运算符(关系运算符)
结果只有true和false两种
(1)基本数据类型 > 、<、==、>=、<=、!=
(2) 引用数据类型 instanceOf 检查是否为某种类型的对象
要注意 == 和 = 的区别 ,= 是赋值运算。
例如:
boolean b1 = false;
if(b1 = true) //条件为真
if(b1 == true)//条件为假
5、逻辑运算符
& | ^ ! && ||
注意:^ 异或,追求的是‘异’,不同为true,相同为fals。
&&和||有短路效果,左边能得出结论,右边不执行。
6、三元运算符
条件表达式 ? 表达式1 : 表达式2
条件表达式为真时,整个表达式返回的结果为表达式1,否则为表达式2.
7、位运算
《左移 右边空缺位补零。
》右移 当最高位 是1 ,空缺位补1,最高位原来是0,空缺位补0。
>>> 无符号右移 左边空缺位补0。
简单记 :左移n位等于乘以2的n次方,右移n位等于除以2的n次方。
&按位与 |按位或 ^按位异或 ~按位取反
位异或运算特点:一个数据对另一个数据异或两次,该数本身不变。
8、运算符优先级:算数运算符>关系运算符>逻辑运算符>三元运算符>赋值运算符