文章目录
四则运算
- 加:+
- 减:-
- 乘:*
- 整除:/
- 取模:%
x += 4
等于x = x+4
,同样x /= 4
等于x = x/4
i ++
或++i
等于i = i+1
,只不过i++
如果和其他操作结合,那么i会在操作结束后才加1,而++i
则会在操作之前就加1。比如
int i = 1;
System.out.println(++i);
布尔运算
仅限于基本数据类型,如果满足就返回true,否则返回false
- 等:
x == y
- 不等:
x != y
- 小于:
x < y
- 大于:
x > y
与:
符号为&
和&&
,表示如果前后两个布尔运算的结果都为true,那么整个语句的结果就为true,如果其中一个为false,那么那么整个语句的结果就为false。比如下面r1就是true,r2就是false。
int a = 1;
int b = 1;
boolean r1 = a == b && a == 1;
boolean r2 = a == b && a == 3;
&
和&&
都可以使用,二者区别是先运算&&
先计算左边的表达式,一旦为false,后续不管多少表达式,均不再计算,又被称为短路逻辑与,而&
还会继续计算,因此一般用&&
,性能更高。
或:
符号为|
和||
,表示如果前后两个布尔运算的结果都为false,那么整个语句的结果就为false,如果其中一个为true,那么那么整个语句的结果就为true。比如下面r1就是true,r2就是false。
int a = 1;
int b = 1;
boolean r1 = a == b || a == 3;
boolean r2 = a != b || a == 3;
|
和||
都可以使用,二者区别是先运算||
先计算左边的表达式,一旦为true,后续不管多少表达式,均不再计算,而|
还会继续计算,因此一般用||
,性能更高。
位运算
Java还提供一种运算符,可以进行位运算,即转换为二进制进行运算,称为位运算符(Bitwise Operators),比如6在位运算中就是被看成“110”。这样做的效率很高,比如除2或乘2就可以直接进行位运算,速度会大大提升。
位移运算:
-
<<k
:左移k位,相当于十进制乘2^k; -
>>k
:右移k位,相当于十进制除以2^k; -
>>>k
:无符号左移k位,正数没有影响,负数要注意,因为二进制负数的最高位为1;
异或运算:
运算符为&
,每一位只有在两个数字这一位的数字不同的情况下,运算结果才为1。比如6&2
,就是
110
010
——
100
这也意味着相等的两个数字的异或运算结果为0。
与运算:
运算符为&
,每一位只有在两个数字这一位的数字都为1的情况下,运算结果才为1。比如6 ^&2
,就是
110
010
——
010
这也意味着相等的两个数字的与运算结果为这个数字自己。
或运算:
运算符为|
运算,每一位只要两个数字这一位的数字一个为1,运算结果就为1。比如6 | 2
,就是
110
010
——
110