Java运算符 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 一、算术运算符 加 减 乘 除 取模% 自增++ 自减— 二、关系运算符 == != > < >= <= 三、位运算符 & | ^ ~ << >> >>> 四、逻辑运算符 && || ! 五、赋值运算符 = += -= *= /= (%)= <<= >>= &= ^= |= 六、条件运算符 也称为三目运算、该运算符有3个操作数 并且需要判断布尔表达式的值 该运算符的主要是决定哪个值应该赋值给变量 variable x = (expression) ? value if true : value if false 实例: public class Test { public static void main(String[] args) { int a, b; a = 10; // 如果 a 等于 1 成立,则设置 b 为 20,否则为 30 b = (a == 1) ? 20 : 30; System.out.println("Value of b is : " + b); // 如果 a 等于 10 成立,则设置 b 为 20,否则为 30 b = (a == 10) ? 20 : 30; System.out.println("Value of b is : " + b); } } 运行结果: Value of b is : 30 Value of b is : 20 七、instanceof运算符 该运算符用于操作对象实例,检查该对象是否是一个特定类型(类类型或接口类型) 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); } } 注意:在判断一个实例引用的类型时,使用的是实际类型 而不是声明的类型代码如下: Vehicle v2 = new Car(); // v2 是 Car 类型 V2是car类型 而不是vehicle类型 public class Car extends Vehicle { public static void main(String args[]) { Car c1 = new Car(); Vehicle v2 = new Car(); // v2 是 Car 类型 Vehicle v3 = new Vehicle(); // Car 是 Vehicle类型, Vehicle 不是 Car 类型 boolean result1 = c1 instanceof Vehicle; // true boolean result2 = v2 instanceof Car; // true boolean result3 = v2 instanceof Vehicle; // true boolean result4 = v3 instanceof Car; // false System.out.println(result1); System.out.println(result2); System.out.println(result3); System.out.println(result4); } } 子类是父类的类型、但父类不是子类的类型 子类的实例可以声明为父类型、但父类的实例不能声明为子类型