Java语言支持如下运算符:
-
算数运算符:+,-,*,/,%,++,–
-
赋值运算符:=
-
府岸西运算符:>,<,>=,<=,==,!=,instanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<< (了解!!)
-
条件运算符: ?:
-
拓展赋值运算符:+=,-=,*=,/=
long a = 123123123123L; int b = 123; short c = 10; byte d = 8; System.out.println(a+b+c+d); //long System.out.println(b+c+d); //int System.out.println(c+d); //int
运算中如果有一个值为 long 类型,则结果为 long 类型;
同理,如果有一个值为 double 类型,则结果为 double 类型
自增、自减、幂的运算++,-- 自增、自减 一元运算符
int a = 3; int b = a++; //执行完这段代码,先给b赋值,再自增 System.out.println(a); //4 int c = ++a; //执行完这段代码,先自增,再给c赋值 System.out.println(a); //5 System.out.println(b); //3 System.out.println(c); //5
幂运算
计算2的3次方,Java中不能写成23,^在Java中是 异或运算符(计算对象相同为0,不同为1)
Java中的幂运算会使用一些 工具类 来操作
例如计算2的3次方:
double pow = Math.pow(2,3); System.out.println(pow); //2*2*2=8逻辑运算符
与(and) 或(or) 非(取反)
boolean a = true; boolean b = false; System.out.println(a&&b); //逻辑与运算:两个变量都为真,结果才为true System.out.println(a||b); //逻辑或运算:两个变量有一个为真,则结果才为true System.out.println(!(a&&b)); //如果是真则变为假,如果是假则变为真
短路运算
int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); //false System.out.println(c); //5
在“&&”运算中若&&前面已经为false,则不执行&&后面,而是直接输出false
位运算符A = 0011 1100; B = 0000 1101; --------------- A&B = 0000 1100; A|B = 0011 1101; A^B = 0011 0001; ~B = 1111 0010;
“<<” 左移 ">>"右移
0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16
总结:<< 左移就是值*2;>>右移就是值/2。
优点:效率高!!
+=、-=和字符串连接符int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
System.out.println(""+a+b); //前面如果有String类型,计算机会把全部的值都当成String
System.out.println(a+b+"");
输出结果:
10
1020
30
三元运算符
x ? y : z
如果x==true,则结果为y,否则结果为z
等价于:
if(x){
return y;
}else{
return z;
}



