java运算符分为4类:算术运算符,关系运算符,逻辑运算符,位运算符。
1. 算术运算符
java的算术运算符分为一元运算符和二元运算符。算术运算符的操作数必须是数值类型。
(1) 一元运算符
一元运算符只有1个操作数,一元运算符有:正(+),负(-),加1(++)和减1(--)4个。
变量的自加(++),在变量的后面
int a = 3; int b = a++; System.out.println(a); //4 System.out.println(b); //3
以上过程,其实分为2步:
int a = 3 int b = a; //3 a = a + 1; //4
变量的自加(++),在变量的前面
int a = 3; int b = ++a; System.out.println(a); //4 System.out.println(b); //4
以上过程,其实分为2步:
int a = 3; a = a + 1; //a = 4 int b = a; // b = 4
自减(--)和自加(++)一样,其实只要看运算符在变量的前后位置,在前面变量先加上1,再使用该变量;如果在变量后面,那么先使用该变量,然后该变量再加上1.
(2) 二元运算符
二元运算符有2个操作数,二元运算符有:加(+),减(-),乘(*),除(/)和取模(%)。
注意点,当有若干个变量进行运算时,结果类型取决于这些变量中范围最大的那个变量的类型。
int a = 3; int b = 2; double c = a / b; // c=1.0
取模(%)示例
int a = 4; int b = 3; int c = a % b; System.out.println(c); //c = 1
上面例子a为正数,b为正数,c为正数
int a = -4; int b = 3; int c = a % b; System.out.println(c); // c = -1
上面例子a为负数,b为正数,c为负数
int a = 4; int b = -3; int c = a % b; System.out.println(c); // c = 1
上面例子a为正数,b为正数,c为正数
由此可以得出一个规律:取模的结果符号与被除数相同。
2. 关系运算符
java的关系运算符用于比较两个数值之间的大小,其运算的结果是个boolean值。关系运算符有6种:大于(>),小于(<),等于(=),不等于(!=),大于等于(>=),小于等于(<=)。这边就不再赘述。
3. 逻辑运算符
int a = 10; int b = 11; int c = 12; int d = 13; boolean e = (a > b) && ((b = c) < d); System.out.println(e); // e = false System.out.println(b); // b = 11
但是如果第一个为true,那么就是会正常执行到运算符后面的运算了,举例(这个只是验证短路特性的)
int a = 10; int b = 11; int c = 12; int d = 13; boolean e = (a < b) && ((b = c) > d); System.out.println(e); // e = false System.out.println(b); // b = 12
(2) 逻辑或: 若第一个操作数为true,那么结果肯定就是true,那么将不会执行运算符后面的运算了。例子与逻辑与的类似,这边不再赘述。
4. 位运算符
java的位运算符是以二进制为单位进行运算的,其操作数和运算结果都是整型。位运算符共有7个: 位与(&),位或(|),位非(~),位异或(^),右移(>>),左移(<<),0填充的右移(>>>)。
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。
/* * java中用什么办法实现2×8效率最高 */ System.out.println(2 << 3); // 16
下一回,复习java基础--流程控制语句。