算数运算符
加(+),减(-),乘(*),除(/),取模(我们常说的取余)(%),自增(++),自减(–)
public class demo01 {
public static void main(String[] args) {
int a=4;
int b=2;
System.out.println(a/b);
//此处输出为2,我们算得也为2
int a1=3;
int b1=2;
System.out.println(a1/b1);
//此处输出为1,但我们算结果应该为1.5.原因在于出c1为整数型至于走整数部分
int a2=3;
int b2=2;
System.out.println(a2/(double)b2);
//此处输出为1.5,证明我们算得也为1.5.我们b2强制转换为了double类型,所得结果也为double类型了
}
}
public class demo01 {
public static void main(String[] args) {
int a=3;
int b=a++;//此处a++相当于一句a=a+1的代码,因为++是在a的后面,所以a是先赋值给b,再执行a++
int c=++a;//此处++a也相当于一句a=a+1的代码,因为++是在a的前面,所以a是先执行a++,再赋值给c
System.out.println(a);
//输出值为5
System.out.println(b);
//输出值为3
System.out.println(c);
//输出值为5
}
}
赋值运算符:=(eg:int a=3;//就是把3的值赋给a)
扩展赋值运算符:+=,-=,*=,/=
a+=b;<==>a=a+b;
a-=b;<==>a=a-b;
a*= b;<==>a=a *b;
a/=b;<==>a=a/b;
关系运算符
大于(>),小于(,),等于(==),大于等于(>=),小于等于(<=),不等于(!=), instanceof
instanceof:测试它左边的对象是否是它右边的类的实例.
关系运算类型返回 boolean 的数据类型。
逻辑运算符
&&(与),||(或),!(非)
public class demo01 {
public static void main(String[] args) {
boolean a=false;
boolean b=false;
boolean c=true;
boolean d=true;
System.out.println(a&&b);//输出为false
System.out.println(a&&c);//输出为false
System.out.println(c&&d);//输出为true
System.out.println(a||b);//输出为false
System.out.println(a||c);//输出为true
System.out.println(c||d);//输出为true
System.out.println(!a);//输出为true
System.out.println(!c);//输出为false
//短路运算
int m=5;
boolean j=(m>5)&&(m++>5);
System.out.println(j);
System.out.println(m);//输出为5,在上面代码中,&&检测到前一个为假,则直接输出假,不进行&&后面计算
boolean k=(m>4)||(m-->4);
System.out.println(k);
System.out.println(m);//输出值为5,在上面代码中,||检测到前一个为真,则直接输出真,不进行||后面计算
}
}
位运算符
与(&),或(|),非(~),异或(^),左移(<<),有符号右移(>>),无符号右移(>>>)
在计算机里1为真0为假
A=0011 0011
B=1010 1010
所以,
A&B是按每一位都1为1,有0出0,输出为:0010 0010
A|B是按每一位都0为0,有1出1,输出为:1011 1011
~A是按每一位进1出0,进0出1,输出为:1100 1100
A^B是按每一位相同输出0,不同输出1, 输出为1001 1001
当计算机直接用位运算是最快的
一个字节有8bit 左移即把每一位往左移;右移反之
A<<1 输出为:0110 0110 相当于(整数型)*2,(低位补0)
A>>1 输出为:0001 1001 相当于(整数型)/2,(正数高位补0,负数高位补1)
A>>>1输出为:0001 1001 相当于(整数型)/2,(高位补0)
条件运算符:?
public class demo01 {
public static void main(String[] args) {
int score=80;
String type=score<60?"不及格":"及格";
System.out.println(type);
}
}
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | []、()、. | 从左向右 |
| 2 | !、~、 ++、 – | 从右向左 |
| 3 | * 、/ 、% | 从左向右 |
| 4 | + 、 - | 从左向右 |
| 5 | <<、 >>、 >>> | 从左向右 |
| 6 | < 、<= 、>、 >=、 instanceof | 从左向右 |
| 7 | == 、!= | 从左向右 |
| 8 | & | 从左向右 |
| 9 | ^ | 从左向右 |
| 10 | | | 从左向右 |
| 11 | && | 从左向右 |
| 12 | || | 从左向右 |
| 13 | ?: | 从右向左 |
| 14 | =、 += 、-= 、*= 、/= | 从右向左 |



