我正在創建一個客戶端類,它將連接到不同類型的數據庫。以下是我正在嘗試執行的代碼段。方法局部變量是否會將垃圾收集後存儲在靜態存儲中?
public class Client{
private static Map<ApplicationTypeEnum, Connection> connectionPool = new HashMap<>();
public void init() throws Exception {
try {
Connection con1 = getConnection(someparams...);
connectionPool.put("app-1",con1)
Connection con2 = getConnection(someparams...);
connectionPool.put("app-2",con2)
} catch (Exception pe) {
throw pe;
}
}
}
現在Connection
對象是本地init
,所以沒有任何機會,Connection
對象將是回收垃圾時控制了init
方法。