JDK6+执行的情况

来源:6-12 Java内存模型之常考题解析-2

weixin_慕标4133177

2019-08-05

JDK6+执行的情况:
老师说首先会在“常量池”创建一个对象“a”,看代码执行顺序,不应该是首先会在“堆中”创建一个对象"a"吗?(对应代码: String s = new String(“a”))
s.intern()时,按照老师说的,会创建堆中的引用放在常量池吧,
为什么s的引用传不过去,常量池的"a"不是后面才会执行的吗 ?听的不是很明白

写回答

1回答

沙龙腾01

2019-08-05

当上述代码的类被JVM加载时,字面值常量 a 就会被加载到 String 常量池中(这是在编译阶段就确定了的常量字符串)。


1
5
翔仔
回复
勤能补拙_百度37k
如果是 s = new String("a") + new String("a"); 字符串常量池中一开始只会出现a,而你如果是 s = "aa" 那么字符串常量池就会出现aa
2020-01-16
共5条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程