运算符Operator
Java语言支持如下运算符
-
算数运算符:+,-,*,/,%(取余:比如12/5余2,也叫模运算),++(一元运算符),–
int a = 3; int b = a++; //执行完这行代码后,先给b赋值,再自增 //a = a + 1; int c = ++a; //执行完这行代码前,先自增,再给c赋值
-
赋值运算符: =
-
关系运算符:>, <, >=, <=, ==(等于), !=(不等于) instanceof
-
逻辑运算符:&&(与,and),||(或,or),!(异或,非,取反)
//逻辑与运算:两个变量都为真,结果才为真
//逻辑或运算:两个变量有一个为真,结果为真
//逻辑非运算:结果为真,则变为假。结果为假,则变为真
位运算符: &, |, ^, ~, >>, <<, >>> //位运算符效率极高,涉及到底层结构
A = 0001 1010 B = 0000 1111 A&B = 0000 1010 //位运算符的与运算,如果相同位的两个都为1,则结果为1,如果其中一个为0或者两个都为0,则结果为零 A|B = 0001 1111 //位运算的或运算,如果相同为的两个数都为0,则结果为0,否则为1. A^B = 0001 0101 //位运算的非运算,如果两个位置相同则为0,不相同则为1. ~B = 1111 0000 //位运算的另一种取反符号,对单个变量取反。 2<<3 = 16 //左移符,2的二进制为0000 0010,左移三位变为0001 0000,结果为16,左移一位等于原本数字乘以2,右移一位等于原数字除以2 8>>3 = 1 //右移符,效果参考左移符
-
条件运算符?:
//三元运算符
x ? y : z //如果x == true,则结果为y,否则结果为z
-
扩展赋值运算符: +=,-=,*=,/=
a+=b; //a = a+b; a-=b; //a = a-b
//字符串连接符+,如果+前面有String类型的字符,则+变为字符串连接符
如:
int a = 5; int b = 10; System.out.println(""+a+b); //显示结果为510 System.out.println(a+b+""); //显示结果为15,因为字符串在后面会从左到右的顺序计算
-
很多运算,可以使用一些工具类来操作,比如Math