2015-03-02 32 views
1

如何從Struts2的Java內存中釋放ArrayList

我有類,我有約10個ArrayList和我新手垃圾收集我學會釋放內存中的對象可以用三種方式完成... 使用匿名對象或製作它空.....但在得到我不能讓我的後作用就空什麼也不顯示在jsp頁面...這裏是我的代碼...

class myAction extends ActionSupport{ 
private ArrayList<Object> ShopList1=new ArrayList<Object>(); 
private ArrayList<Object> ShopList2=new ArrayList<Object>(); 
private ArrayList<Object> ShopList3=new ArrayList<Object>(); 
private ArrayList<Object> ShopList4=new ArrayList<Object>(); 
private ArrayList<Object> ShopList5=new ArrayList<Object>(); 
public execute{ 

ShopList1.put("Adding 20 Object"); 
ShopList2.put("Adding 20 Object"); 
ShopList3.put("Adding 20 Object"); 
ShopList4.put("Adding 20 Object"); 

setShopList1(ShopList1); 
setShopList2(ShopList2); 
setShopList3(ShopList3); 
setShopList4(ShopList4); 
setShopList5(ShopList5); 
//If i make All arrayList Null the result does not show up in JSP... 
return SUCCESS; 
} 

public ArrayList<Object> getShopList1() { 
      return ShopList1; 
     } 
     public void setShopList1(ArrayList<Object> shopList1) { 
      ShopList1 = shopList1; 
     } 
     public ArrayList<Object> getShopList2() { 
      return ShopList2; 
     } 
     public void setShopList2(ArrayList<Object> shopList2) { 
      ShopList2 = shopList2; 
     } 
     public ArrayList<Object> getShopList3() { 
      return ShopList3; 
     } 
     public void setShopList3(ArrayList<Object> shopList3) { 
      ShopList3 = shopList3; 
     } 
     public ArrayList<Object> getShopList4() { 
      return ShopList4; 
     } 
     public void setShopList4(ArrayList<Object> shopList4) { 
      ShopList4 = shopList4; 
     } 
     public ArrayList<Object> getShopList5() { 
      return ShopList5; 
     } 
     public void setShopList5(ArrayList<Object> shopList5) { 
      ShopList5 = shopList5; 
     } 

} 

所以我的問題是我什麼時候釋放arrayList或JVM爲我做什麼。

回答

1

如果您想從列表中刪除對象而不是從內存中刪除對象,您可以使用ArrayList.remove(object)

您不能強制垃圾收集器從堆中垃圾。通常當它沒有參考時它會自動作爲垃圾回收器使用