class Utility{
public String a = "aaaa huge string";
public void doSomething() {
String b = "bbbb huge string";
.....
}
}
给定类Utility,下面是我的方法调用。
Step 1) Utility u = new Utility();
Step 2) u.doSomething();
Step 3) u = null;
当对象u在步骤3之后被垃圾收集时,字符串b是否也会从字符串池中删除?
字符串a和b何时从内存中加载和删除(如果有的话)?
方法中定义的变量不是实例的成员,因此它们引用的对象的GC完全独立于实例的GC。
当对象u在步骤3 之后被垃圾收集时
如果对象u
在步骤3 之后被垃圾收集
字符串b也会从字符串池中删除吗?
u
与b
无关:请参阅上文。
何时从内存中加载和删除字符串a和b(如果有的话)?
已加载类,因为它们是字符串文字。清除取决于GC和拘留。