运算符
-
运算符
-
算数运算符:+,-,*,%,++,--
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=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。
六、扩展赋值运算符
int a =10;
int b =20;
a+=b; //a=a+b
a-+b; //a=a-b
七、字符串连接符 + ,String
如果输出的数前面是字符串+ 后面的。那么后面的数都被转换成字符串连接。
例如:
int a =10;
int b =20;
System.out.println(""+a+b);
System.out.println(a+b+"");
//结果为 1020
30
字符串在前面,后面都转为字符串
字符串在后面,前面依旧运算。
八、条件运算符(三元运算符)
//必须掌握
-
x ? y : z
如果x==true,则结果为y,否则结果为z
-
例如:
int score = 80;
String type = score<60?"不及格":"及格";
System.out.println(type);
//结果:及格
九、优先级
优先级 | 运算符 |
---|---|
1 | () |
2 | ! +(正) -(负) ++ -- |
3 | * / % |
4 | +(加) -(减) |
5 | < <= > >= |
6 | == != |
7 | ^ |
8 | && |
9 | || |
10 | ?: |
11 | = += -= *= /= %= |