1.6版本intern方法不懂

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

YX_油腻

2020-04-06

图片描述
在JDK1.6的时候为什么当s.intern的时候,s2在常量池中已经生成了,所以副本放不进去了。
但是s3.intern的时候,s4在常量池中却还没有生成??
s2=“a”;
s4=“aa”;

写回答

1回答

翔仔

2020-04-07

同学好,对于s2来讲,开头就出现了new String("a")   "a" 这个常量本身就放到了常量池里了,而对于s4来讲,第一行new String("a") 里并没有"aa"

0
2
翔仔
回复
YX_油腻
不是这样的,new String("a")+new String("a") 虽然能生成"aa" 但是程序在解析方法里面用到的常量的时候,并不会解析到"aa" 也就是方法在执行之前,载入常量池的只有"a"
2020-04-12
共2条回复

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

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

8427 学习 · 1870 问题

查看课程