关于字符串的疑问
<p>字符串有两种创建方式:</p>
<pre><code class="language-java">String str = "abc";
</code></pre>
<pre><code class="language-java">String str = new String("abc");
</code></pre>
<p>第一种创建方式 JVM 会判断字符串常量池中是否包含该对象,如果有则返回常量池中对象的引用,如果没有则在常量池中创建一个新对象。</p>
<p>第二种创建方式在类加载阶段会将"abc"保存在 class 常量池中,调用 new 指令时会在堆中创建一个新的 String 对象。</p>
<p>问题:第一种创建方式是否等价于<code>new String("abc").intern()</code>?</p>
收藏(0)
分享
相关标签:
注意:本文归作者所有,未经作者允许,不得转载
-
2022年9月29日 12:48
不一样,new 了就代表新分配内存空间了。
0
0