A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hel 中级黑马   /  2013-11-10 01:19  /  1054 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

if("lisi".equels(name))

if(name.equels("lisi"))
当name=null时
有什么区别?

评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 中关村阿旺 于 2013-11-10 01:37 编辑

当name=null时,后面这句代码:if(name.equals("lisi"))会产生空指针异常。
if("lisi".equals(name))这句代码当name=null时,"lisi"这个字符串对象调用equals()方法和null比较
一个有内容,有内存地址,一个没有内容,没有内存地址,所以会返回false。
if(name.equals("lisi"))这句代码当name=null时,一个没有值,没有内存地址的对象怎么能调用方法跟别的对象比较呢?
所以会发生异常。
楼主的equals()方法是不是拼错了?
回复 使用道具 举报
hel 中级黑马 2013-11-10 02:14:36
藤椅
中关村阿旺 发表于 2013-11-10 01:36
当name=null时,后面这句代码:if(name.equals("lisi"))会产生空指针异常。
if("lisi".equals(name))这句代 ...

哦 知道了 equals是null时 不能调用方法,调用方法就会空指针异常
回复 使用道具 举报
name=null,运行if(name.equals("lisi"))时会出现空指针异常。
运行if("lisi".equals(name))时,用"lisi"的equals()方法和null比较。会返回false。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马