1:短路现象
当使用逻辑操作符时,会遇到一种 “短路” 现象,即一旦明确无误的确定整个表达式的值时,就不再计算表达式余下部分了,因此整个逻辑表达式靠后的部分有可能不会被运行。
如下代码:
public class ShortCircuit {
static boolean test1(int val){
System.out.println("test1("+val+")");
System.out.println("result("+(val<1));
return val<1;
}
static boolean test2(int val){
System.out.println("test1("+val+")");
System.out.println("result:"+(val<2));
return val<2;
}
static boolean test3(int val){
System.out.println("test1("+val+")");
System.out.println("result:"+(val<3));
return val<3;
}
public static void main(String[] args) {
boolean b=test1(0)&&test2(2)&&test3(2);
System.out.println("expression is "+b);
}
}
输出结果为:
test1(0)
result:true
test1(2)
result:false
expression is false
即当第二个结果返回false时,由于意味着整个表达式肯定为false,所以没必要继续计算剩余的表达式,"短路"一词的由来正源于此。
2:截尾和舍入;
java中在将float或double转型为整型值时,总是对该数字执行截尾,如果想要得到舍入的结果,就需要调用 java.lang.Math的round方法进行四舍五入。