Java语言支持如下运算符
算术运算符:+,-,*,/,%(取余,称为模运算),++,--;
赋值运算符:=;
关系运算符:>,<,>=,<=,==,!=(不等于),instanceof;
逻辑运算符:&&(与),||(或),!(非);
位运算符:&,|,^,~,>>,<<,>>>;
条件运算符:?,:;
拓展赋值运算符:+=,-=,*=,/=;
自增自减运算符
b=a++,b=a--表示先给b赋值,a再自增/减1;
b=++a,b=--a表示a先自增/减1,再给b赋值;
幂运算
Math.pow(底数,指数)
double pow = Math.pow(2,3);
System.out.println(pow);//输出2^3=8
逻辑运算符
&&(与运算):二者均为真结果才为真
短路运算
int c = 5;
boolean d = (c<4) && (c++<4);
System.out.println(d);//false
System.out.println(c);//5,因为c<4为false,故c++不执行
int c = 5;
boolean d= (c++<5) && (c<3);
System.out.println(d);//false
System.out.println(c);//6,c++先执行
位运算符
A = 0011 1100
B = 0010 1101
A&B = 0010 1100
A|B = 0011 1101
A^B = 1110 1110
~B = 1101 0010
>>相当于给数字/2
<<相当于给数字*2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
System.out.println(2 << 3);//输出16
条件运算符(三元运算符)
x ? y : z
意为如果x=true,则结果为y,否则结果为z;
int a = 45;
String b = a < 60 ? "不及格" : "及格";
System.out.println(b);//不及格
拓展赋值运算符
+=:a+=b a=a+b
-=:a-=b a=a-b
字符串连接符
在+左右出现String类型,会直接将其他操作数都转换为String再进行链接;
inta=10;
intb=20;
System.out.println(""+a+b);//输出1020
System.out.println(a+b+"");//输出30,因为a+b在前