方法內建立的 Map 於方法結束時會隨著區域變數超出作用域而被 GC 回收,是否仍需顯式呼叫 clear()?
clear() 釋放引用。clear() 可降低記憶體峰值,減少 Full GC 頻率。// 正確:長期持有的 Map,使用完畢釋放
private static final Map<String, Object> CACHE = new HashMap<>();
public void refreshCache() {
CACHE.clear(); // 釋放舊資料引用
loadNewDataIntoCache();
}
視 Map 生命週期而定:短命區域變數無需 clear;長命共享 Map 必須適時清理,防止記憶體洩漏。