黑马程序员技术交流社区

标题: equals区别 [打印本页]

作者: asinzuo    时间: 2015-8-13 07:48
标题: equals区别
if(s.equals("over"))
if("over".equals(s))
有什么区别?


作者: songynnm    时间: 2015-8-13 07:48
这两种写法结果含义一样。
不过一般有经验的都用第二种:
如果s为null的时候 第一种报错(空指针异常),
第二种会返回一个false,不执行if的内容。
作者: 樊佰轩    时间: 2015-8-13 08:47
两者直接没有什么区别,运算结果都一样,只不过是比较提倡使用第二种,因为不容易写错。一旦over少加引号,不至于调试半天。
作者: 肖天长    时间: 2015-8-13 12:21
运算结果都一样
作者: wayonEmes    时间: 2015-8-13 23:22
3楼说的很对啊,就是前者可能会有空指针异常
作者: dddlinux    时间: 2015-8-14 00:28
结果都一样,一般用第二种: 如果s为null的时候 会导致程序报错, 第二种会返回一个false,不执行if的内容。
作者: 黑马的味道    时间: 2015-8-15 18:41
在这学习了。。知道了新知识
作者: xxyyyzzzz    时间: 2015-8-17 23:00
随大流吧,用第二种
作者: Ci功    时间: 2015-8-24 18:26
好仔细,我本来也以为两者是一样的
作者: 球球_    时间: 2015-9-8 01:17
不错,学到新知识了!!
作者: BNU_harry    时间: 2015-10-24 12:02
重写equals是需要遵循一定地规范的,包括自反性和对称性等.所以楼主的这个结果是否一致得看你的equals方法有没有按照规范重写




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2