黑马程序员技术交流社区

标题: String对象面试题 [打印本页]

作者: 进击的大鹏    时间: 2014-9-14 22:56
标题: String对象面试题
字符串一旦初始化就不可以被改变
面试题:
String s1 = new String(“abc”);
String s2 = “abc”;
有区别吗?
两个new的对象,两个直接赋值组合==与equals的结果是多少

作者: 刃下心    时间: 2014-9-15 01:12
直接赋值:java有一个字符串缓冲区,直接赋值的时候它会先找缓冲区里有没有这个字符串如果有直接返回引                                  用没有就在里面新建
new方式:新建一个,它首先也会去缓冲区里边查找,不管有没有,它都会在堆里新建一个,如果缓冲区里面没                                  有则在缓冲区里面也新建一个•

作者: 梦里听传说    时间: 2014-9-15 01:17
有区别,毕老师视频有讲过啊,我记得
作者: 海燕    时间: 2014-9-15 12:04
前者效率高,后者效率低吧
作者: 陈云阳    时间: 2014-9-15 15:20
==是false,因为==比较的是对象的地址值,而String只要是new的都是开辟新空间,所以地址值不一样,
equals比较的是对象的内容值,俩个字符串都是abc所以是true




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