大家好,我目前有一个POJO对象, 该对象中具有很多属性(会有对象属性及继续深入的嵌套):
class MyObject {
private String str1;
private String str2;
private Object obj1;
private List<Object> objList;
....
}
当该对象初始化,进行一系列操作后,有一些属性,程序已不再需要,因此我希望能将这些属性占用的内存回收。如:我不再需要objList这个对象属性。
以下代码,表示最终将MyObject的一个对象的objList属性置null,但JVM不会马上回收
MyObject myobj = new MyObject();
// ... business logic
myobj.setObjList(null);
问1:
System.gc(); // 假设加了这一句,效果会比不加好吗?
问2:
// 以下情况会比“问1”中的好吗?
Thread.sleep(2000L);
System.gc();谢谢~
class MyObject {
private String str1;
private String str2;
private Object obj1;
private List<Object> objList;
....
}
当该对象初始化,进行一系列操作后,有一些属性,程序已不再需要,因此我希望能将这些属性占用的内存回收。如:我不再需要objList这个对象属性。
以下代码,表示最终将MyObject的一个对象的objList属性置null,但JVM不会马上回收
MyObject myobj = new MyObject();
// ... business logic
myobj.setObjList(null);
问1:
System.gc(); // 假设加了这一句,效果会比不加好吗?
问2:
// 以下情况会比“问1”中的好吗?
Thread.sleep(2000L);
System.gc();谢谢~
谢谢~
就算你不sleep,jvm该进行垃圾回收照样去垃圾回收。