String b =new String("txt");

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小小 2022-05-30 15:29:53

同学你好,这里指的是字符串常量池之外,new String()还会再堆内存中创建实例对象。

祝学习愉快~

  • 提问者 慕莱坞0247484 #1

    https://img1.sycdn.imooc.com//climg/629475be09c3db7209660773.jpg

    百度了一下好深奥

    2022-05-30 15:44:23
  • 好帮手慕小小 回复 提问者 慕莱坞0247484 #2

    同学你好,同学可以结合如下内容加深理解。String s = new String("txt");

    1.在编译期,JVM会去字符串常量池查找是否存在"txt";

    2.如果不存在,就在常量池开辟一个空间来存储"txt";

    3.如果存在,就不用开辟新的空间;

    4.在运行期,通过String的构造器在堆内存中new了一个新的空间(new Sring("txt"));

    5.然后将常量池中的"txt"对象的地址复制一份到该堆内存的空间中;

    6.在栈内存中开辟一个名为s的空间,存放堆内存中新空间的地址。

    祝学习愉快~

    2022-05-30 16:26:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师