两个if语句都return false,是分开判断好,还是用&&合在一起好

问题遇到的现象和发生背景

两个if语句都return false,是分开判断好,还是用&&合在一起好

用代码块功能插入代码,请勿粘贴截图
 /**
     * 判断两个数组是否相等
     * @param arr
     * @param arr1
     * @return
     */
    public static boolean isEqual(int[] arr,int[]arr1){
        if (arr==null && arr1==null) return true;
        if (arr==null || arr1==null) return false;
        if (arr.length != arr1.length) return false;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != arr1[i]) return false;
        }
        return true;
    }


public static boolean isEqual(int[] arr,int[]arr1){
        if (arr==null && arr1==null) return true;
        if ((arr==null || arr1==null) && (arr.length != arr1.length)) return false;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] != arr1[i]) return false;
        }
        return true;
    }
我想要达到的结果

性能最优

这两种方式无论怎么优化,对性能的影响都甚微,毕竟只是逻辑判定。
但分开成两个if能便于开发人员理解逻辑。

都不好
到处return让代码可读性变差
你应该定义一个bool量,最后return这个bool量,前面所有的if都改为if else 结构,让它最终只会进入一个分支,而不是每个分支都走进去一遍
横向写一堆与或非可读性会很差,而且写多了屏幕都放不下了,那代码根本没法看
该写成纵向的还是要写成纵向

你这不会空指针?

img

这种情况下不应该用 || 吗?为什么是用 && ?