运算符
算数运算符:+,-,*,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=instanceof
逻辑运算符:&&,||,!
位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
条件运算符:?:
扩展赋值运算符:+=,-=,*=,/=
任何数与long类型进行运算操作(加减乘除之类)结果都是long类型。如果没有long,结果都为int
同理运算里有double,结果也为double
关系运算符返回布尔值,结果:正确、错误。
清楚++a,a++,--a,a--
例:计算2的三次方,2^3
需要调用数学函数,很多运算会使用一些工具类操作
double pow = Math.pow(2,3);
System.out.println(pow);
逻辑运算符
&& || !
与 或 非
&&:两个变量都为真,结果为真。只要有一个变量为假,结果为假
||:只要有一个变量为真,结果为真。两个为假,结果为假
! :真边假,假变真
短路运算:
若a=false,则判断a&&b时,不会运行b
例:
public class Day4 {
public static void main(String[] args) {
int a=5;
boolean b=(a<5)&&(a++<5);
System.out.println(b);
System.out.println(a);
}
}
结果:false 5
证明,在与运算中,第一个变量为假,则不会判断第二个变量,直接输出结果为假
A = 0011 1100
B = 0000 1101
A&B=0000 1100 //都为1,才落1。否则就落0
A|B= 0011 1101 //只要有1就落1。
A^B=0011 0001 //上下相同落0,不同落1
~B =1111 0010 //0变1 ,1变0
左移<< 相当于把数字乘二 *2
右移 >> 相当于把数字除二 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
System.out.println(2<<3); 得出16。
如果输出的数前面是字符串+ 后面的。那么后面的数都被转换成字符串连接。
例如:
字符串在前面,后面都转为字符串
字符串在后面,前面依旧运算。
x ? y : z
如果x==true,则结果为y,否则结果为z
例如:
int score = 80;
String type = score<60?"不及格":"及格";
System.out.println(type);
//结果:及格
<col>
优先级
1
()
2
! +(正) -(负) ++ --
3
* / %
4
+(加) -(减)
5
< <= > >=
6
== !=
7
^
8
&&
9
||
10
?:
11
= += -= *= /= %=