Java语言支持如下运算符
1,算术运算符:+, - ,*, / ,%, ++, --
2,赋值运算符:=
3,关系运算符: >, < ,>=, <=, ==, !=, instanceof
4,逻辑运算符:&&, ||, !
5,位运算符:& ,|, ~ ,^ ,>>, <<, >>>
6,条件运算符:? :
7,扩展赋值运算符:+=,-=,*=,/=
算术运算符:
long x1 = 123123123123L;
int x2 = 123;
short x3 = 10;
byte x4 = 8;
//做运算时,只要有long,结果为long类型;
// 没有long的数字运算,默认结果全是int型
System.out.println(x1+x2+x3+x4);//long
System.out.println(x2+x3+x4);//int
System.out.println(x3+x4);//int
输出结果:
123123123264
141
18
//++ -- 自增,自减,一元运算符
int a = 3;
int b = a++;//执行完此行代码,是先给b赋值,然后a自增
//a = a + 1;
System.out.println(a);//这里的a是自增后的a
//a = a + 1
int c = ++a;//执行此行代码前,是a先自增,然后赋值给c
//注意:代码是从上往下执行的
System.out.println(a);
System.out.println(b);
System.out.println(c);
输出结果:
4
5
3
5
逻辑运算符:
//逻辑运算符 与(&&) 或(||) 非(!)
boolean a = true;
boolean b = false;
System.out.println(a&&b);
System.out.println(a||b);
System.out.println(!a);
//短路运算
int c = 5;
boolean d = (c < 4)&&(c++<4);
System.out.println(c);
System.out.println(d);
输出结果:
false
true
false
5
false
位运算符:
//位运算符 与二进制有关
/*
A = 0011 1100
B = 0000 1101
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001 相同为0,不同为1(异或)
~b = 1111 0010
面试题:2*8怎么算最快
<<:左移一位,相当于*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);
输出结果:及格
扩展赋值运算符:
int a = 10;
int b = 20;
a+=b;
System.out.println(a);
a-=b;
System.out.println(a);
//字符串连接符
System.out.println(""+a+b);//字符串在前直接拼接
System.out.println(a+b+"");//先运算,然后拼接
输出结果:
30
10
1020
30