如果我将一个字符串声明为
String test=new String("testing");
and
String test1="testing1"
由于 String 是 JAVA 中的一个类,那么 test1 如何在不使用 new 运算符的情况下成为字符串对象。另外,当使用 new 运算符时,将为 new String(“测试”)分配内存,因此在 test1 的情况下,如何分配内存?
另外,当字符串被实习时,如果两个字符串具有相同的值,那么字符串存储在字符串实习池中的引用是什么?
我们首先考虑这个String test=new String("testing");
- 它在堆中创建一个字符串对象。在字符串池中不检查池中是否存在该字符串。
现在这个String test1="testing1"
- 它在字符串池中而不是在堆中创建 String 字符串对象。创建之前会检查该字符串是否已存在于池中。如果是,则返回其引用,否则会在池中创建一个新字符串并返回其引用。基本上这是一个字符串文字,它被放入常量池中以实现内存优化和可重用性。
实习生():当您使用 new() 构造对象并在该对象上调用 intern() 时使用它,然后首先在 Stirng 池中检查该字符串是否已存在,如果存在则直接使用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)