CodeGym
促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • 透過反射建立物件

    JAVA 25 SELF
    等級 62,課程 3
    如何「動態」建立物件並操作類別:為什麼 Class.newInstance() 已過時,如何正確使用 getConstructor/ getDeclaredConstructor 與 Constructor.newInstance,透過 Method.invoke 呼叫方法,以及用 Field 讀取/修改欄位。會說明常見例外( ReflectiveOperationException 等)、模組系統的限制、實用做法,以及一個用於動態實例化的小工具。此外,還有整體流程的示意圖。
    可用
  • 反射與 Dependency Injection

    JAVA 25 SELF
    等級 62,課程 4
    在這堂課我們討論 Java 中反射的實務:如何透過 Class、 Field 與 Method 讀取私有欄位( setAccessible( true))並組裝一個簡單的序列化器;DI 容器如何藉由註解( @Inject、 @Autowired)透過建構子與欄位注入相依性;基於 Proxy 與 InvocationHandler 的動態代理如何攔截呼叫;這些技術在實務中( Spring、 JUnit、 Jackson)如何應用,以及會遇到哪些限制與錯誤。
    可用
  • 日誌記錄基礎:java.util.logging、Log4j、SLF4J

    JAVA 25 SELF
    等級 63,課程 0
    為什麼應用程式需要日誌,以及為什麼只靠 System.out.println 在生產環境無法救場。我們將拆解 ERROR/ WARN/ INFO/ DEBUG/ TRACE 等級、內建的 java.util.logging 堆疊與設定檔 logging.properties,並認識 Log4j 2、 Logback 與外觀層 SLF4J。我們會與主控台輸出比較、加入相依性,並解析常見的設定與使用錯誤。
    可用
  • 日誌格式與層級:best practices

    JAVA 25 SELF
    等級 63,課程 1
    解析一則良好的日誌訊息由哪些部分組成(時間、層級 INFO/ ERROR、logger 名稱、文字、stack),如何透過 SLF4J/Log4j2 的樣板正確格式化(以 "{}" 取代字串連接)、如何記錄例外( logger.error(..., ex))、何時使用 ERROR/ WARN/ INFO/ DEBUG/ TRACE 各層級,以及最佳實務:不包含敏感資料、訊息清楚、使用關聯 ID( orderId、 userId)與妥善設定 log4j2.xml。
    可用
  • 在多執行緒與 Web 應用中的日誌紀錄

    JAVA 25 SELF
    等級 63,課程 2
    如何在多執行緒與 Web 環境中讓日誌更可靠:現成庫的執行緒安全性 ( Logback、 Log4j 2、 java.util.logging)、 MDC 上下文與 requestId 傳遞、與 Spring 篩選器與錯誤處理器的整合、與 System.out 的差異、執行緒池的細節與微服務中的追蹤(traceId、 OpenTelemetry)。解析實務範例與常見錯誤,並使用 SLF4J 與 Logger 作為 static final 欄位。
    可用
  • JVM 監控:JMX、VisualVM、Java Flight Recorder

    JAVA 25 SELF
    等級 63,課程 3
    這堂課是關於監控 JVM 的實用指南:如何透過 JMX 與 JConsole 讀取標準指標,如何在 VisualVM 中視覺化觀察記憶體、執行緒並剖析方法(包含 heap dump 與 thread dump),以及如何使用 Java Flight Recorder 記錄「黑盒」並在 JDK Mission Control 中進行分析。我們會示範啟動指令( -XX:StartFlightRecording),說明分析 GC/執行緒的典型情境與常見錯誤。
    可用
  • 程式碼效能剖析與最佳化:工具與方法

    JAVA 25 SELF
    等級 63,課程 4
    說明效能剖析與監控的差異、哪些指標重要(方法執行時間、記憶體、執行緒、鎖定),以及應使用哪些工具: VisualVM、 Java Flight Recorder,以及商業版剖析器。實作上我們會研究「慢速」計算器,學習尋找「熱點」、分析 heap dump,並透過替換演算法、減少配置與快取來消除瓶頸。最後以最佳化流程的視覺化圖示與常見錯誤解析作結。
    可用
  • JVM 記憶體結構:堆疊(Stack)、堆(Heap)、PermGen/MetaSpace

    JAVA 25 SELF
    等級 64,課程 0
    在 JVM 執行期間,區域變數、物件與類別的中繼資料分別去哪裡?我們將拆解執行緒堆疊、堆,以及 PermGen → MetaSpace 的演進。也會談到 GC 的運作方式、常見的記憶體錯誤( StackOverflowError、 OutOfMemoryError),以及啟動旗標( -Xss、 -Xmx、 -XX:MaxMetaspaceSize)的影響。附上示意圖、mermaid 圖表與可運行範例。
    可用
  • 垃圾回收器:G1、ZGC、Shenandoah,比較

    JAVA 25 SELF
    等級 64,課程 1
    在本講座中,我們會解析垃圾回收器( GC)在 JVM 中如何運作,傳統的 Serial/ Parallel/ CMS 與現代的 G1、 ZGC、 Shenandoah 有何差異,什麼是年輕代與老年代,為什麼會出現 Stop-the-World 停頓,以及如何將其最小化。實作上我們會看看如何用旗標啟用不同 GC( -XX:+UseG1GC、 -XX:+UseZGC、 -XX:+UseShenandoahGC)、調整停頓( -XX:MaxGCPauseMillis)與堆大小( -Xms/ -Xmx)、閱讀日誌( -Xlog:gc*),並避免典型錯誤(例如強制呼叫 System.gc())。
    可用
  • 區域變數、記憶體洩漏、弱引用

    JAVA 25 SELF
    等級 64,課程 2
    在本講座中,你將了解區域變數位於哪裡(執行緒堆疊)以及它與堆(heap)有何不同,為什麼即便有 GC,Java 仍可能發生記憶體洩漏,以及如何避免。會解析真實情境:「永恆」的 static 集合、未取消註冊的監聽器與快取。將認識引用家族: SoftReference、 WeakReference、 PhantomReference,以及容器 WeakHashMap。還會練習修復洩漏並討論,為何呼叫 System.gc() — 只是對 JVM 的提示而非命令,以及 OutOfMemoryError 可能帶來的後果。
    可用
  • 記憶體分析工具:jmap、jvisualvm

    JAVA 25 SELF
    等級 64,課程 3
    JVM 記憶體疑難排解實作指南:用 jmap 擷取堆快照( heap dump),透過 -heap 與 -histo 閱讀摘要,在 jvisualvm(分頁 Monitor、 Heap Dump、 Threads、 Profiler)中檢視應用程式,拆解範例洩漏,並認識 Eclipse MAT 與 jconsole。最後——常見錯誤與建議。
    可用
  • 解析處理記憶體時的常見錯誤

    JAVA 25 SELF
    等級 64,課程 4
    實務解析,說明為什麼 Java 應用可能「記憶體外洩」並變慢:遺漏移除的監聽器 ( addActionListener/ removeActionListener)、長壽的靜態集合、未關閉的資源(建議: try-with-resources)、會保留參照的匿名/內部類別,以及濫用 System.gc()。將學會閱讀 GC 日誌( -Xlog:gc*、 -XX:+PrintGCDetails)、選擇合適的回收器、用 WeakHashMap 建立快取、進行監控( jvisualvm、 jconsole)、分析 heap dump,並正確調整 -Xmx/ -Xms。最後 — 提供真實的外洩案例與修正方式。
    可用
  • 1
  • ...
  • 27
  • 28
  • 29
  • 30
學習
  • 註冊
  • Java 課程
  • 題目協助
  • 價格
  • Java 語法
社群
  • 用戶
  • 文章
  • 論壇
  • 聊天
  • 成功故事
  • 動態
  • 聯盟計畫
公司
  • 關於我們
  • 聯絡方式
  • 評價
  • 新聞中心
  • CodeGym for EDU
  • 常見問題
  • 支援
CodeGymCodeGym 是一門從零開始學習 Java 程式設計的線上課程。這門課程是初學者精通 Java 的完美方式。它包含超過 1200 題、具即時檢驗功能,以及涵蓋 Java 基礎理論的必要範圍。為了幫助你在學習上成功,我們實作了一系列激勵功能:測驗、程式專案、關於有效學習的內容,以及 Java 開發者職涯相關內容。
追蹤我們
介面語言
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia
繁體中文
Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym
MastercardVisa
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym