为了账号安全,请及时绑定邮箱和手机立即绑定

和字符串有关的问题:

和字符串有关的问题:

死神的苹果 2018-02-27 15:56:14
如下代码:String s1="爱慕课";String s2="爱慕课";String s3=new ("爱慕课");String s4=new ("爱慕课");我知道,s1和s2,编译程序只创建了一个,问题是,值同样都是“爱慕课”,为什么s3,s4却都被程序创建了?
查看完整描述

2 回答

?
我不会你还让我

TA贡献10条经验 获得超2个赞

s1为字面常量定义的字符串,他被创建后存放在字符串池中,在执行第二行代码时,“爱慕课”字符串对象在池中已存在,所以直接返回池中已存在的那个字符串对象。所以 此方式创建字符串 只创建一次;但是通过new 构造器的方法创建字符串之后,在堆内存中分别分配了两个内存地址 s3 和 s4 分别指向了堆中的两个不同的对象,不同的对象就会有不同的地址分配。

查看完整回答
反对 回复 2018-02-28
  • 2 回答
  • 0 关注
  • 912 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信