短路逻辑运算符 &&
当使用与逻辑运算符时,在两个操作数都为true时,结果才为true,但是当得到第一个操作为false时,其结果就必定是false,这时候就不会再判断第二个操作了。
1 public class LuoJi{ 2 public static void main(String[] args){ 3 int a=5; //定义一个变量 4 boolean b=(a<4)&&(a++<10); 5 System.out.println("使用短路逻辑运算符的结果为"+b); 6 System.out.println("a的结果为"+a); 7 } 8 } 9 10 11 //运行结果为: 使用短路逻辑运算符的结果为false, a的结果为5 12 // 解析:该程序使用了短路逻辑运算符(&&),首先判断a<4的结果为false,则b的结果必定是false,所以不再执行第二个操作a++<10的判断,所以a的值为5.
条件运算符 ?:
也被称为三元运算符,该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
1 variable x = (expression) ? value if true : value if false
1 public class Test{ 2 public static void main(String[] args){ 3 int a,b 4 a=10; 5 // 如果a等于1成立,则设置b为20,否则为30 6 b=(a==1)? 20:30; 7 System.out.println("Value of b is: "+b); 8 9 //如果a等于10成立,则设置b为20,否则为30 10 b=(a==10)?20:30; 11 System.out.println("Value of b is : "+b); 12 } 13 } 14 15 16 //运行结果: Value of b is :30 17 // Value of b is :20
Instanceof 运算符
该运算符用于操作对象实例,检查该对象是否是一个特定糊弄(类类型或接口类型). 运算格式如下:
1 (Object reference variable) instanceof (class/interface type)
如果运算符左侧变量所指的对象,是操作符右侧类或接口(class/interface)的一个对象,那么结果为真。例:
1 String name = "James"; 2 boolean result = name instanceof String; //由于name是String类型,所以返回真
如果被比较的对象兼容于右侧类型,该运算符仍然返回true,例:
1 class Vehicle {} 2 3 public class Car extends Vehicle { 4 public static void main(String[] args){ 5 Vehicle a = new Car(); 6 boolean result = a instanceof Car; 7 System.out.println(result); 8 } 9 } 10 11 12 //运行结果: true