美文网首页
【Java面试题】6 判断下面代码是否有问题

【Java面试题】6 判断下面代码是否有问题

作者: 暖熊熊 | 来源:发表于2017-10-12 10:58 被阅读0次
    public class Test {
    
        public static void main(String[] args) {
            String username = "";
            if (username.equals("zxx"))
                System.out.println("相等");
            int x = 1;
            System.out.println(x == 1 ? true : false);
        }
    }
    

    1.第一个equals

    • 一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。
      if (username != null && username.equals("zxx"))这样写笔记完整
    public class Test {
        public static String username;
    
        public static void main(String[] args) {
            /*
             * if (username.equals("zxx")) { System.out.println("haha"); //false Exception
             * in thread "main" java.lang.NullPointerException }
             */
            if (username != null && username.equals("zxx")) {
                System.out.println("相等"); // true
            }
            if ("ss".equals(username)) {
                System.out.println("相等"); // true
            }
        }
    }
    
    • username有可能为null,就会抛出空指针异常,更好的写法是:if ("zxx".equals(username))

    • username.equals();如果username是空的话,系统就不认他是一个String,此时调用equals()就报错了。但是把String作为参数的话,是没有问题的

    2. 第二个System.out.println(x == 1 );这样写纯属多余

    因为 x==1已经是个布尔值了。所以去掉? true : false,保证程序的简洁

    相关文章

      网友评论

          本文标题:【Java面试题】6 判断下面代码是否有问题

          本文链接:https://www.haomeiwen.com/subject/vhynyxtx.html