黑马程序员技术交流社区

标题: 详解java面试的String类 [打印本页]

作者: 汪平乐    时间: 2013-2-15 11:27
标题: 详解java面试的String类
本帖最后由 汪平乐 于 2013-2-19 18:13 编辑

String s1 = "abc";
String s2 = new String("abc");
为什么String s2 = new String("abc")会有两个对象?,而且 s1==s2会false ; 而 s1.equals(s2) 是true:handshake
作者: 李东城    时间: 2013-2-15 18:39
String s2 = new String("abc");这一句中你把"abc"这个字符串看成一个整体,前面有new就创建了一个对象,而"abc"本身也是一个字符串对象,所以有两个
s1==s2比较的是两个对象的内存地址,s2是new出来的,所以地址肯定不同,而equals是比较的对象本身,显然两个都是"abc",故结果为true
作者: 黄成超    时间: 2013-2-15 21:39
本帖最后由 黄成超 于 2013-2-15 21:43 编辑

看一下这个链接,希望对你有所帮助
String特点归纳:
http://bbs.itheima.com/thread-38016-1-1.html
还有就是equals与==的用法:
http://bbs.itheima.com/forum.php?mod=viewthread&tid=37090&highlight=equals
主要对String s1 = "abc"的等效形式与equals及“==”区别就可以解决这个问题啦!




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