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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© asinzuo 中级黑马   /  2015-8-13 07:48  /  3526 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
if(s.equals("over"))
if("over".equals(s))
有什么区别?

最佳答案

查看完整内容

这两种写法结果含义一样。 不过一般有经验的都用第二种: 如果s为null的时候 第一种报错(空指针异常), 第二种会返回一个false,不执行if的内容。

10 个回复

正序浏览
重写equals是需要遵循一定地规范的,包括自反性和对称性等.所以楼主的这个结果是否一致得看你的equals方法有没有按照规范重写
回复 使用道具 举报
不错,学到新知识了!!
回复 使用道具 举报
Ci功 中级黑马 2015-8-24 18:26:51
8#
好仔细,我本来也以为两者是一样的
回复 使用道具 举报
随大流吧,用第二种
回复 使用道具 举报
在这学习了。。知道了新知识
回复 使用道具 举报
结果都一样,一般用第二种: 如果s为null的时候 会导致程序报错, 第二种会返回一个false,不执行if的内容。
回复 使用道具 举报
3楼说的很对啊,就是前者可能会有空指针异常
回复 使用道具 举报
运算结果都一样
回复 使用道具 举报
两者直接没有什么区别,运算结果都一样,只不过是比较提倡使用第二种,因为不容易写错。一旦over少加引号,不至于调试半天。
回复 使用道具 举报
这两种写法结果含义一样。
不过一般有经验的都用第二种:
如果s为null的时候 第一种报错(空指针异常),
第二种会返回一个false,不执行if的内容。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马