短路逻辑运算符 &&
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
public class LuoJi{
public static void main(String[] args){
int a=5; //定义一个变量
boolean b=(a<4)&&(a++<10);
System.out.println("使用短路逻辑运算符的结果为"+b);
System.out.println("a的结果为"+a);
}
} //运行结果为: 使用短路逻辑运算符的结果为false, a的结果为5
// 解析:该程序使用了短路逻辑运算符(&&),首先判断a<4的结果为false,则b的结果必定是false,所以不再执行第二个操作a++<10的判断,所以a的值为5.
条件运算符 ?:
也被称为三元运算符,该运算符有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 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定糊弄(类类型或接口类型). 运算格式如下:
(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);
}
} //运行结果: true