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);
}
}
子类是父类的类型、但父类不是子类的类型
子类的实例可以声明为父类型、但父类的实例不能声明为子类型