博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Java面试题】6 判断下面代码是否有问题
阅读量:6429 次
发布时间:2019-06-23

本文共 1000 字,大约阅读时间需要 3 分钟。

1.    if(username.equals(“zxx”){}2.    int  x = 1;       return x==1?true:false;

1.一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。

if( username!=null && username.equals(“zxx”){}这样写才完整。

public class Test12 {    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

                 }*/                                        at zhongqiu.test.Test12.main(Test12.java:6) 

/*if( username!=null && username.equals("zxx")){            System.out.println("haha");                  true        }*/        if( "ss".equals(username)){            System.out.println("haha");                true          }    }}

username有可能为null,就会抛出空指针异常,

更好的写法是: if("zxx".equals(username){} ,

username.equals();如果username是空的话,系统就不认他是一个string,此时调用equals就报错了。

但是把string作为参数的话,是没有问题的

2,第二个 return x==1?true:false 这样写纯属多余

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

转载地址:http://vrnga.baihongyu.com/

你可能感兴趣的文章
使用Shell脚本查找程序对应的进程ID,并杀死进程
查看>>
201521123081《java程序设计》 第12周学习总结
查看>>
统计连续时间
查看>>
1、Monkey环境搭建
查看>>
通过cordova将vue项目打包为Android app
查看>>
一些分类方法的比较(转)
查看>>
典型的软件过程模型
查看>>
Gson如何解析key值是数字的json数据
查看>>
虚拟短信
查看>>
英文技术Podcast推荐 - 英语技术一起学
查看>>
linux ubuntu12.04 安装mysql
查看>>
理解实例、原型搜索顺序
查看>>
Laravel5.5 生成测试数据
查看>>
springboot整合mybatis及封装curd操作-配置文件
查看>>
express.static设置缓存
查看>>
MVC过滤器(执行顺序)
查看>>
Linux 学习 Eclipse美化,解决工具栏过大和 Javadoc背景色修改
查看>>
Java基础之String类
查看>>
Selenium +Chrome浏览器如何模拟手机操作
查看>>
在Mac OS里安装和升级Git
查看>>