java中String new和直接赋值的区别

 我来答
pieryon
2016-06-22 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166869
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部

java中String new和直接赋值的区别如下:

1、执行语句String str=new String("abc")时,不管字符串池中是否存在字符串"abc",直接新建一个字符串"abc"。

  • 注意:新建的字符串"abc"不是在字符串池中),然后将其付给str。

2、执行语句String str="abc"时,首先查看字符串池中是否存在字符串"abc",如果存在则直接将"abc"赋给str,如果不存在则先在字符串池中新建一个字符串"abc",然后再将其赋给str。

实例代码:

public class Demo {

public static void main(String[] args) {

String a = new String(); // 在堆中生成对象s,在 字符串池中创建空字符串

String aa = ""; // 字符串池中已经存在空字符创,不用再创建了

String aaa = new String("");// 堆中生成对象aaa,并在 字符串池中创建空字符串

String b = new String("cisco");// 堆中生辰对象b, 字符串池中创建字符串“asdf”

String c = new String("cisco");// 堆中创建对象c,字符串池中创建字符串“asdf”

String d = "cisco"; // 字符串池中有“asdf”字符串,不再创建

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式