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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郝聚德 中级黑马   /  2015-6-1 12:30  /  416 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s = "abc" ;
String s = new String("abc");
有啥区别

3 个回复

倒序浏览
Java运行环境有一个字符串池,由String类维护。执行语句String s="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给s,如果不存在则先在字符串池中新建一个字符串

"abc",然后再将其赋给s。
执行语句String s=new String("abc")时,不管字符串池中是否存在字

符串"abc",直接新建一个字符串"abc"(注意:新建的字符串"abc"不是在字符串池中),然后将其付给s。
前一语句的效率高,后一语句的效率低,因为新建字符串占用内存空间。

我的回复是否成功给您解决了疑惑呢?

评分

参与人数 2技术分 +1 黑马币 +4 收起 理由
lwj123 + 1
郝聚德 + 4 很给力!

查看全部评分

回复 使用道具 举报 1 0
耀阳圣尊 发表于 2015-6-1 12:33
Java运行环境有一个字符串池,由String类维护。执行语句String s="abc"时,首先查看字符串池中是否存在字符 ...

谢谢大神了 说的很清晰  很明白  我知道了
回复 使用道具 举报
楼上讲解很明确
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马