免費開始練習
moea_joint_essay 114年 [資訊] 資訊管理、程式設計

第 一 題

📖 題組:
Java 是一種常見的物件導向程式語言,請回答下列問題:(3 題,共 20 分)
📝 此題為申論題,共 3 小題

小題 (一)

Java 中基本型別(Primitive Type)與參考型別(Reference Type)差異為何?(5 分)

思路引導 VIP

指出基本型別直接儲存數值、存在 Stack,參考型別儲存位址、指向 Heap,並提及大小與方法呼叫的差異。

🤖
AI 詳解
AI 專屬家教
  1. 基本型別 (Primitive Type):例如 intchardoubleboolean。變數直接儲存實際的數值,記憶體配置通常位於堆疊區 (Stack)。它們具有固定的記憶體大小,且不具備方法與屬性,不可為 null
  2. 參考型別 (Reference Type):例如陣列、字串 (String) 及自訂的類別 (Class)。變數本身儲存的是記憶體位址(指標/參考),而實際的物件資料儲存在堆積區 (Heap) 中。它們可以使用物件的方法,預設值為 null

小題 (二)

Java 的垃圾回收機制(Garbage Collection)如何運作(3 分)?何時觸發(3 分)?

思路引導 VIP

說明 GC 定期追蹤不可達物件並釋放記憶體(標記清除/分代演算法);當 Heap 空間不足或呼叫 System.gc() 時會被觸發。

🤖
AI 詳解
AI 專屬家教
  1. 運作機制:Java 的垃圾回收器會自動管理 Heap 記憶體。其運作主要基於「可達性分析 (Reachability Analysis)」,透過標記-清除 (Mark-and-Sweep) 等演算法,識別出無法從 GC Roots (如執行緒、靜態變數) 追蹤到的「不可達 (unreachable) 物件」,並將這些無用物件佔據的記憶體區塊進行回收與整理。現代 JVM 多採用分代回收 (Generational GC),分為年輕代 (Young) 與老年代 (Old) 提高效率。
  2. 觸發時機
    • 隱式觸發:當 JVM 在 Heap 區塊 (如年輕代的 Eden 區) 無法找到足夠連續的空間來配置新物件時,會自動觸發 Minor GC 或 Full GC。

小題 (三)

Java 物件導向的三大特性為封裝、繼承、多型,請分別說明其定義與如何在 Java 中實現。(9 分)

思路引導 VIP

分別解釋三大特性定義,並指出在 Java 中的實作語法 (private/getter/setter, extends, override/overload)。

🤖
AI 詳解
AI 專屬家教
  1. 封裝 (Encapsulation)
    • 定義:將物件的屬性 (資料) 隱藏在內部,不允許外部程式直接存取,只能透過類別所提供的特定方法來操作資料,藉此保護資料完整性。
    • 實現方式:在 Java 中,將類別屬性宣告為 private,並提供 public 的 Getter 與 Setter 方法供外部互動。

🏷️ 相關主題

物件導向程式設計與系統分析核心概念
查看更多「[資訊] 資訊管理、程式設計」的主題分類考古題