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

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,保证程序的简洁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,665评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,966评论 19 139
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,947评论 0 62
  • 一. Java基础部分.................................................
    wy_sure阅读 9,288评论 0 11
  • 我发现: 1我发现:中午12点上课,这对于我来说,真的好难受,远比一点上课难受得多。感觉人正是困倦要休...
    福娃婧阅读 1,319评论 0 0

友情链接更多精彩内容