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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 进击的大鹏 中级黑马   /  2014-9-14 22:56  /  1430 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

字符串一旦初始化就不可以被改变
面试题:
String s1 = new String(“abc”);
String s2 = “abc”;
有区别吗?
两个new的对象,两个直接赋值组合==与equals的结果是多少

4 个回复

倒序浏览
直接赋值:java有一个字符串缓冲区,直接赋值的时候它会先找缓冲区里有没有这个字符串如果有直接返回引                                  用没有就在里面新建
new方式:新建一个,它首先也会去缓冲区里边查找,不管有没有,它都会在堆里新建一个,如果缓冲区里面没                                  有则在缓冲区里面也新建一个•
回复 使用道具 举报
有区别,毕老师视频有讲过啊,我记得
回复 使用道具 举报
前者效率高,后者效率低吧
回复 使用道具 举报
==是false,因为==比较的是对象的地址值,而String只要是new的都是开辟新空间,所以地址值不一样,
equals比较的是对象的内容值,俩个字符串都是abc所以是true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马