// 在编译的时候,在常量池中生成"abc",运行时在堆中生成"abc"。
String str1 = new String("abc");
// 该方法首先查找常量池中是否存在"abc",如果存在返回该常量的引用,
// 如果不存在,将堆中的"abc"的引用加入常量池(jdk1.7之后),并返回,
// 注意jdk1.7之前是将堆中的"abc"拷贝到常量池并返回常量池中的引用。
str1.intern();
// 会在堆中创建Stringbuilder,然后调用append方法将str1和str2存起来。
String str3 = str1+str2;
new String("abc")过程
最新推荐文章于 2023-04-14 14:49:53 发布