str.equals(name) name = null 报不报错
答案:2 悬赏:80 手机版
解决时间 2021-04-07 15:26
- 提问者网友:放下
- 2021-04-07 07:51
str.equals(name) name = null 报不报错
最佳答案
- 五星知识达人网友:轻雾山林
- 2020-02-04 21:44
str.equals("")是比较字符串与“”的值是否相等,而str!=null是判断字符串的指针是否为空值。这根字符串的存储结构有关系,堆栈内存地址等等。。
全部回答
- 1楼网友:往事埋风中
- 2020-03-29 06:55
如果str == null 为真,则前者if()中会返回false,后者if()会报空指针异常;
你这里使用的str字符串对象是null,表示没有指向任何对象,在执行str.equal()方法时,虚拟机会发现str不能调用其实例方法equals(),所以返回异常,表明这是一个需要引起注意的地方;反过来 "".equals(str),""不为null,而是一个字节为0的对象,所以不会抛出异常,一个不为空,一个为空,当然返回false;
再有,写str != null 没有错,但是最好养成 null != str的习惯,因为 null!=str 永远不会产生空指针异常,但其他的很容易产生,这也是极限编程建议的写法
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯