采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
String s = new String(“ss”); s.intern(); 请问老师,这两行执行的步骤是先在堆中创建了一个ss的对象,s的引用保存在栈中么? 之后调用intern时,发现堆中已经有这个对象,就把对象的引用复制到了常量池中,是这个逻辑么?
还有个问题,什么情况下会在常量池中直接创建对象,String s = "ss"这样么?
同学好,第一行会在堆和常量池创建"ss",而s将堆引用保存在了栈中,s.intern()没有任何作用,因为ss已经在常量池存在;
String s = "ss" 是会在常量池中创建"ss"并返回对应的引用给s,保存在栈里
非常感谢!
看看这张图能不能帮到你。
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
2.3k 27
3.4k 22
1.8k 15
2.0k 14
1.7k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号