同学你好,同学可以结合如下内容加深理解。String s = new String("txt");
1.在编译期,JVM会去字符串常量池查找是否存在"txt";
2.如果不存在,就在常量池开辟一个空间来存储"txt";
3.如果存在,就不用开辟新的空间;
4.在运行期,通过String的构造器在堆内存中new了一个新的空间(new Sring("txt"));
5.然后将常量池中的"txt"对象的地址复制一份到该堆内存的空间中;
6.在栈内存中开辟一个名为s的空间,存放堆内存中新空间的地址。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星