Java语言支持入如下运算符:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!= instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符?:
- 扩展赋值运算符:+=,-=,*=,/=
一、二元运算符类型提升
整数运算:运算结果为操作数类型最高者
浮点运算:操作数中有double结果则为double,同为float是结果才为float(小数可以进行%运算)
一元运算符(++,–)
int a = 3;
int b = a++; //执行完成后,b=3。先赋值后自增
int c = ++a; //执行完成后,c=5,。先自增后赋值,此时a已经自增至4了故结果为c=5
二、布尔逻辑表达符
- 逻辑与:&&
- 逻辑或:||
- 逻辑非:!
短路问题:与一旦出现false条件就会返回false,或一旦出现ture条件就会返回ture
三、位运算符(了解)
- ~取反
- &按位与
- |按位或
- ^按位异或
- <<:左移运算符 相当于乘以2
- >>:右移动运算符 相当于除以2
=号左右两边都是布尔值可以进行位算符
int m = 8 ; //二进制1000
int n = 4; //二进制0100
int a = 3<<2; //相当于3*2*2
int b = 16>>2; //相当于16/2/2
boolean c = ture&false; //输出结果为false,没有短路功能,一般都是逻辑运算更加效率
System.out.printin(~m);//结果为二进制0111
System.out.printin(m&n); //结果为二进制0000
System.out.printin(m|n); //结果为二进制1100
System.out.printin(m^n); //结果为二进制1100 和按位或区别为"11得0"
扩展运算符
a += 5;//等效于a = a+5
字符串连接符
String str = "5";
int a = 4;
System out printin(a+str)//输出结果为45,当+两边有一个是字符串,+变为字符串链接符
三元(目)运算符
- x?y:z (一个简单的if else)
int a = 3;
int b = 4;
String str = "";
if a<b{
String str = "a<b";
}else{
String str = "a>b";
}
// 使用三元(目)运算符表达
int a = 3;
int b = 4;
String str = "";
str = {a<b}?"a<b":''a>b";
System.out println(str);
运算优先级了解一下即可
先乘除后加减,其他用括号表达