99.99% Java 開發者引以為傲的 GC,在 J2ME 卻成隱患。場景切換(如遊戲邏輯返回主選單)時,舊邏輯物件若只靠 GC,新舊物件並存極易 OOM。GC 非即時,不像 C++ delete 立即釋放。
結論:J2ME 上除基本型別外,所有物件必須顯式置 null(如 imgs = null;)。工具:Runtime.freeMemory() 監控剩餘堆疊,適當插入代碼可有效追蹤記憶體狀況。
許多開發者來自 PC 開發,充裕記憶體掩蓋壞習慣。錯誤寫法:
// a 不為空
a = new Logic();
問題:先建立新物件再賦值,期間新舊並存易溢位;且妨礙 GC 工作。正確寫法:
a = null;
a = new Logic();
雖繁瑣但在 J2ME 必要。
drawString("遊戲