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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李春生 中级黑马   /  2012-10-29 21:51  /  1234 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

求教:String str = new String("abc");
"abc".equals(str) 和 str.equals("abc") 有不同之处么?哪个更好?

4 个回复

倒序浏览
第一个好 第一种方式不容易出现空指针
回复 使用道具 举报
刘丽娜 发表于 2012-10-29 21:56
第一个好 第一种方式不容易出现空指针

我觉得还是第二种好,一般都是用对象的引用调用相关的方法,解析传入的实参。
回复 使用道具 举报

我觉得还是第二种好,一般都是用对象的引用调用相关的方法,解析传入的实参。
回复 使用道具 举报
个人观点  String str = new String("abc");  
new String("abc") 是new了一块内存,里面放了   "abc"
但是直接使用的"abc"是放在常量区的一个东东,   "abc"  和  str并不是同一个东西    如果你需要用的是str然后你用了   "abc".equals这个方法 其实判断的是"abc"和你要判断的那个东西是不是同一个,对你的str完全没了作用。
这样然后去看你的问题
"abc".equals(str) 和 str.equals("abc")  可以这么想,一个是   我和你   比 一个是    你和我    比,主动和被动的关系吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马