Java中短路

当使用逻辑运算符时,我们会遇到一种“短路”的现象。即一旦能够准确无误的确定整个表达式的值,就不再计算表达式余下的部分了。因此整个表达式靠后的部分有可能不被运算

    /**短路
     * @param args
     */
    public static void main(String[] args) {
        boolean b=test1(0)&&test2(2)&&test3(2);
        System.out.println("expression is "+b);
    }
    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("test2("+val+")");
        System.out.println("result:"+(val<2));
        return val<2;
    }    
    static  boolean test3(int val){
        System.out.println("test3("+val+")");
        System.out.println("result:"+(val<3));
        return val<3;
    }    
View Code

上述代码中当test2为false时,整个表达式的结果已经确定,后续的test3是不会被执行的。这样可以提升代码的性能

原文地址:https://www.cnblogs.com/changshuo/p/3660520.html