Java 程式執行時,物件與資料分布在不同記憶體區域,各區域特性與效能差異巨大。理解這五大區域,有助於寫出高效能、低延遲的程式碼。
Integer 小數值快取)置於堆疊提升效能。new 出來的物件實體皆配置於堆。static 修飾的變數與方法,位置固定、程式啟動即存在、全域可見。善用 static 可減少查找開銷,提升效能。"hello"、3.14)與 final 常數。嵌入式系統常放入 ROM 保護智慧財產權。| 區域 | 可控性 | 建議 |
|---|---|---|
| 暫存器 | 不可控 | 信任編譯器最佳化 |
| 堆疊 | 間接(基本型別、參考) | 優先使用基本型別、避免過度物件化 |
| 堆 | 間接(new、物件池) | 物件復用、減少臨時物件、調整 GC 參數 |
| 靜態/常量區 | 可直接控制 | 合理使用 static/final、常量外部化配置 |
| 非 RAM | 業務決定 | 視持久化/傳輸需求選擇 |
重點:靜態/常量區是開發者唯一直接可調控的區域,善用 static 與 final 能在不犧牲功能前提下提升效能。