采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在JDK1.6的时候为什么当s.intern的时候,s2在常量池中已经生成了,所以副本放不进去了。 但是s3.intern的时候,s4在常量池中却还没有生成?? s2=“a”; s4=“aa”;
同学好,对于s2来讲,开头就出现了new String("a") "a" 这个常量本身就放到了常量池里了,而对于s4来讲,第一行new String("a") 里并没有"aa"
对于s4来讲,前面不是有一个new String("a")+new String("a")了吗。这样的String类型的字符串拼接不是会创建一个新的字符串吗,难道没有创建"aa",并intern到常量池中吗?
不是这样的,new String("a")+new String("a") 虽然能生成"aa" 但是程序在解析方法里面用到的常量的时候,并不会解析到"aa" 也就是方法在执行之前,载入常量池的只有"a"
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
2.0k 27
2.8k 22
1.4k 15
1.6k 14
1.4k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号