黑马程序员技术交流社区
标题:
使用equals方法问题
[打印本页]
作者:
李俊豪
时间:
2012-10-30 20:54
标题:
使用equals方法问题
本帖最后由 李俊豪 于 2012-10-30 23:04 编辑
在使用equals方法的时候,如下(username是一个参数)
username.equals("zhansan")和"zhangsan".equals(username)有区别吗?
好像没区别。
作者:
杨千里
时间:
2012-10-30 21:03
比较顺序不一样。
s1.equals(s2); 以s1为中心,去s2比较。
s1.equals(s3); 以s1为中心,去s3比较。
s2.equals(s1); 以s2为中心,去s1比较。
s2.equals(s3); 以s2为中心,去s3比较。
你觉得 怎么好比较 就怎么用?区别就在这里
作者:
小灰灰
时间:
2012-10-30 21:04
"zhangsan".equals(username) 写较好!!
username.equals("zhansan")这样写 也许会出现NullPointerException
作者:
吴硕
时间:
2012-10-30 21:58
username.equals("zhansan")中如果username为null,就会抛异常NullPointerException
"zhangsan".equals(username)中"zhangsan"是一个已存在的字符串,一定可以调用equals方法,即使username为null也不会抛异常
增强了程序的健壮性
作者:
442851994
时间:
2012-10-30 22:45
区别就是:username是一个变量,而zhangsan是一个常量,如果username赋值为空时,调用equals()方法,会抛异常,而用zhangsan调的话就不会抛出异常,因为他是常量在类中可以找得到,所以不会抛异常。我们在写代码时最好的就是把常量放在前面调用方法,这样就不会抛异常了。
作者:
李俊豪
时间:
2012-10-30 22:50
问题已经解决
作者:
李计伟
时间:
2012-10-30 22:55
如果username是对象的引用的话
username.equals("zhansan")是调用父类Object的equals()方法比较的是地址和==一样。
"admin".equals(username)调用的是String的equals方法比较的是内容。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2