目录
1、逻辑运算符
& | 逻辑与(and) | 当且仅当两个操作数都为true,条件才为true |
&& | 逻辑与(and) | 第一个为false,就会返回false, |
| | 逻辑或(or) | 如果任何两个操作数任何一个为true,条件为true |
|| | 逻辑或(or) | 第一个为true,就会返回true |
! | 非运算符 | 用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 |
2、位运算符
假设整数变量A的值为60和变量B的值为13:
A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
& | 按位与 | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 按位或 | 如果相对应位都是0,则结果为0,否则为1 | (A | B)得到61,即 0011 1101 |
^ | 按位异或 | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 取反 | 按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 左移运算符,左移一位相当于乘2 | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
>> | 右移运算符,左移一位相当于除2 | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
3、条件运算符(三目)(?:)
variable x = (expression) ? value if true : value if false
int a , b;
a = 10;
// 如果 a 等于 1 成立,则设置 b 为 20,否则为 30
b = (a == 1) ? 20 : 30;
4、instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型)。
( Object reference variable ) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。
String name = "James";
boolean result = name instanceof String; // 由于 name 是 String 类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回true。
class Vehicle {}
public class Car extends Vehicle {
public static void main(String[] args){
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result);
}
}