描述:
针对jdk6+的场景,
String s = new String(“ss”);
s.intern();
请问堆、栈、常量池里各存储了什么?
思路:
第一行会在堆和常量池创建"ss",而变量s将堆引用保存在了栈中,第二行s.intern()没有任何作用,因为"ss"已经在常量池存在;
此外,String s = “ss” 是会在常量池中创建"ss"并返回对应的引用给s,对应的引用保存在栈里
描述:
针对jdk6+的场景,
String s = new String(“ss”);
s.intern();
请问堆、栈、常量池里各存储了什么?
思路:
第一行会在堆和常量池创建"ss",而变量s将堆引用保存在了栈中,第二行s.intern()没有任何作用,因为"ss"已经在常量池存在;
此外,String s = “ss” 是会在常量池中创建"ss"并返回对应的引用给s,对应的引用保存在栈里
数据加载中...