运算符
算数运算符:+,-,*,%,++,--
赋值运算符:=
关系运算符:>,<,>=,<=,==,!=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
0000 0000 0
0000 0001 1
0000 0011 3
System.out.println(2<<3); 得出16。
int a =10; int b =20; a+=b; //a=a+b a-+b; //a=a-b
如果输出的数前面是字符串+ 后面的。那么后面的数都被转换成字符串连接。
例如:
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 | = += -= *= /= %= |