本週 Java 新聞與大事(2026-07-24)

🔥 頭條新聞

  • 品質推廣預警 – JDK 27:G1 垃圾回收器將成為所有環境的預設值 (Inside Java)
    這份預警是針對相關專案的定期溝通,重點指出 JDK 27 中 G1 垃圾回收器將在所有 HotSpot 環境下成為預設的垃圾回收器。這項變更對應用程式的效能特性將產生顯著影響,開發者應提早評估其應用程式在新的預設組態下的表現,以確保順暢升級與最佳化。
    👉 消息來源
  • 第 62 集:「JDK 27 與 Valhalla 專案,現在就來!與黑客松」 (Inside Java)
    本集節目宣布 JDK 27 已進入 RDP1 階段,且 Valhalla 專案的 JEP 401 提案正被合併到 JDK 主線中。節目也鼓勵開發者參與相關黑客松活動,共同探索這些重要更新所帶來的潛力。這些語言核心的進展將為 Java 帶來更高效能與新功能。
    👉 消息來源
  • Java 新聞彙整:Value Objects、WildFly 41、TornadoVM、LangChain4j、Oracle AI Agent Studio (InfoQ Java)
    本週 Java 新聞重點包含 Value Objects 預覽版的重新引入、WildFly 41 的正式釋出,以及 TornadoVM、LangChain4j 和 Oracle AI Agent Studio 等專案的更新。此彙整提供了 Java 生態系統的廣泛概覽,對於追蹤各項新技術與工具進展的開發者而言,提供了快速了解的視窗。
    👉 消息來源
  • Azul Zulu 2026 年 7 月季度更新發布 (Foojay)
    Azul Zulu 正式發布了 2026 年 7 月季度更新,針對 OpenJDK 的多個版本(Java 26, 25, 21, 17, 11, 8, 7, 6)提供了重要的安全補丁。這項更新對於維持 Java 應用程式的安全性至關重要,提醒開發者應定期更新其生產環境中的 JDK 實例,以防範潛在的資安風險。
    👉 消息來源
  • 2026 年 7 月 Azul Payara 版本更新內容 (Foojay)
    2026 年 7 月 Azul Payara 發布了多個版本,包括 Azul Payara 7.2.0、Azul Payara Community 7.2026.7 等,並針對所有版本進行了重要的安全修復。此次更新解決了暴力破解相關的漏洞,提醒開發者及系統管理員應盡速升級,以確保應用程式伺服器環境的穩定與安全。
    👉 消息來源
  • JEP 540:簡潔 JSON API (孵化中) (Reddit r/java)
    JEP 540 提案旨在為 Java 引入一個簡潔的 JSON API,作為孵化器模組提供。此 API 將提供更原生、更輕量級的方式來處理 JSON 資料,無需引入外部函式庫。對於需要頻繁處理 JSON 的 Java 應用程式開發者來說,這將顯著簡化程式碼並提升開發體驗。
    👉 消息來源
  • JEP 401:Value Objects 正式提案以 JDK 28 為目標 (Reddit r/java)
    JEP 401(Value Objects)已正式被提案納入 JDK 28 的目標功能。此提案旨在為 Java 引入值物件(Value Objects),提供更高效能、更具表現力的資料結構,以解決當前基本型別與物件型別之間的效能與語義鴻溝。這項重大改進將對 Java 程式碼的設計與效能產生深遠影響。
    👉 消息來源
  • Oracle 終於做出決定,將 WebLogic 升級至 EE 9.1 以上版本 (Reddit r/java)
    Oracle 終於邁出了重要一步,將其企業級應用程式伺服器 WebLogic 升級至 Java EE 9.1 (現為 Jakarta EE) 以上版本。這項更新對於依賴 WebLogic 的企業級 Java 開發者來說是個好消息,標誌著 Oracle 在支持最新 Jakarta EE 標準方面取得了進展,有助於現代化部署與開發。
    👉 消息來源
  • Apache TomEE 10.2.0 發布! (Reddit r/java)
    Apache TomEE 10.2.0 版本已正式發布,此更新為 Java EE (現為 Jakarta EE) 開發者帶來了最新的功能與改進。TomEE 作為輕量級的應用程式伺服器,提供整合的企業級功能。此版本更新對於部署和運行 Jakarta EE 應用程式的開發者來說,提供了更穩定、更高效的平台。
    👉 消息來源

📚 教學與指南

  • 第 63 集:「使用 Spring AI 2.0 實現 AI 解決方案」 (Inside Java)
    本集節目深入探討使用 Spring AI 2.0 開發 AI 解決方案的關鍵技巧。內容涵蓋了確定性代理程式、MCP 伺服器與技能、提示工程等實用主題,並揭示了 Java 豐富生態系在 AI 應用中的優勢與潛力,對於開發者探索 AI 整合極具參考價值。
    👉 消息來源
  • 簡報:從 OTEL 到 SLM:從生產遙測中提煉尖端模型行為 (InfoQ Java)
    本簡報由 Ben O’Mahony 主講,探討如何建構超越傳統規則檢測的自訂 AI 驅動語言伺服器協定(LSP)。他解釋了如何使用 OpenTelemetry 原生檢測 AI 代理程式,並從生產環境的遙測資料中提煉模型的行為,為開發者在 AI 系統監控與最佳化方面提供了實務洞見。
    👉 消息來源
  • 從 Java 程式碼生成圖表 (Baeldung)
    本教學文章介紹如何利用工具從 Java 程式碼自動生成 UML 和架構圖。這有助於開發者更好地理解現有專案的結構、快速進行程式碼審查並維護設計文件。透過視覺化工具,複雜系統的可讀性與可維護性都能得到顯著提升。
    👉 消息來源
  • 使用 LM Studio 將本地 LLM 與 Spring AI 整合 (Baeldung)
    本文章指導開發者如何使用 LM Studio 部署本地託管的聊天模型,並將其與 Spring AI 框架進行整合。這使得開發者無需依賴雲端服務,即可在本地環境中開發和測試基於大型語言模型(LLM)的應用程式,提供高度彈性與隱私保護的 AI 開發途徑。
    👉 消息來源
  • 如何解決 MySQL java.sql.SQLException:錯誤的字串值 (Baeldung)
    本教學文章詳細說明如何診斷並修復 Java 應用程式在使用 MySQL 資料庫時,因字元編碼問題而導致的 `java.sql.SQLException: Incorrect string value` 錯誤。文章提供了多種解決方案與最佳實踐,幫助開發者確保資料庫操作的穩定性,避免常見的編碼陷阱。
    👉 消息來源
  • Selenium Webdriver 的 submit() 與 click() 方法比較 (Baeldung)
    本教學深入分析 Selenium WebDriver 中 `submit()` 和 `click()` 這兩個方法的行為差異與適用情境。理解它們在表單提交和元素互動方面的細微差別,對於開發穩定且有效的自動化測試程式碼至關重要。文章提供了清晰的範例與說明,幫助開發者做出正確的選擇。
    👉 消息來源
  • 解決 org.hibernate.AnnotationException:非法嘗試映射非集合類型 (Baeldung)
    本教學文章指導開發者如何正確地在 Hibernate 中映射其實體,以解決 `org.hibernate.AnnotationException: Illegal Attempt to Map a Non Collection` 錯誤。內容涵蓋了常見的映射錯誤原因及解決方案,確保物件關聯映射(ORM)的正確性與資料庫操作的穩定性。
    👉 消息來源
  • Java 程式如何取得自身的程序識別碼 (Process ID) (Baeldung)
    本教學文章展示如何擷取執行中的 Java 程式自身的程序識別碼 (PID)。瞭解如何獲取 PID 對於應用程式的監控、管理與故障排除至關重要,例如在需要終止特定 Java 實例或進行性能分析時。文章提供簡單明瞭的程式碼範例,方便開發者快速應用。
    👉 消息來源
  • 如何在 HandlerInterceptor 中取得請求主體 (RequestBody) 與回應主體 (ResponseBody) (Baeldung)
    本文章深入探討在 Spring MVC 的 `HandlerInterceptor` 中,如何有效地存取 HTTP 請求主體 (RequestBody) 和回應主體 (ResponseBody)。這項技術對於實作日誌記錄、安全性檢查或資料轉換等橫切關注點至關重要,幫助開發者提升應用程式的可觀察性與擴展性。
    👉 消息來源
  • 使用 Embabel Agentic AI 框架實現大型語言模型(LLM)工具呼叫推理 (Baeldung)
    本文章介紹如何利用 Embabel Agentic AI 框架來實現大型語言模型(LLM)的工具呼叫推理功能。這使得 LLM 能夠根據用戶指令,選擇並執行外部工具或函式庫,進而擴展其能力。對於希望為 AI 應用程式添加複雜交互與實用功能的開發者而言,這是一項重要技術。
    👉 消息來源
  • 測試 Spring MVC 的 HandlerInterceptor (Baeldung)
    本教學文章詳細說明如何有效地測試 Spring MVC 中的 `HandlerInterceptor`。確保 Interceptor 邏輯的正確性與穩定性,對於應用程式的行為與安全性至關重要。文章提供了實用的測試策略與範例程式碼,幫助開發者建構可靠的攔截器功能。
    👉 消息來源
  • 在 Banana Pi (ARM 與 RISC-V) 上首次測試 Java,並使用 Pi4J 控制 LED 閃爍 (Foojay)
    本文記錄了作者在 Banana Pi 開發板上首次測試 Java 的經驗,涵蓋了 ARM 與 RISC-V 架構。同時展示如何結合 Pi4J 函式庫,實現控制 LED 閃爍的實作範例。這對於對嵌入式系統、物聯網 (IoT) 以及在非傳統硬體上運行 Java 感興趣的開發者提供了寶貴的實務經驗。
    👉 消息來源
  • 邁向持久化的 Spring PetClinic 應用程式 (Foojay)
    本文探討如何將 Spring PetClinic 應用程式改造為具備「持久化執行」能力的系統,使其程式碼在故障後仍能保持進度。傳統程式的狀態儲存在記憶體中,一旦程序崩潰便會遺失。持久化執行提供了一種新的架構模式,提升了分散式系統的韌性與可靠性,對架構設計者具參考價值。
    👉 消息來源
  • 快速暖機,輕量運行:搭配 Azul Prime 與 Kedify 在 Kubernetes 上垂直擴展 Java 應用程式 (Foojay)
    本文探討在 Kubernetes 上為 Java 應用程式實現快速啟動與輕量化運行的垂直擴展策略。傳統基於 CPU 和記憶體使用率的自動擴展機制往往滯後。結合 Azul Prime 的優化 JVM 與 Kedify 的事件驅動擴展,可有效解決資源指標延遲問題,提升 Java 應用程式在容器環境中的彈性與效率。
    👉 消息來源
  • 如何使用 Quarkus Agent MCP 建構具備「生命」的 AI 程式碼助理 (DZone Java)
    本文探討如何利用 Quarkus Agent MCP 框架建構智能 AI 程式碼助理,使其能理解執行中應用程式的狀態,超越傳統程式碼生成工具的限制。當編譯的類別失敗或本地資料庫容器崩潰時,這些 AI 助理仍能有效運作,為開發者帶來更智慧、更實用的開發輔助工具。
    👉 消息來源
  • 停止編寫 If-Else 義大利麵式程式碼:使用策略模式建構更簡潔的 Java 程式 (DZone Java)
    本文旨在解決高流量企業級 Java 應用程式中業務邏輯常退化為程序複雜性的問題,推薦使用策略模式來重構程式碼。透過這種設計模式,可以有效消除過多的 `if-else` 或 `switch` 語句,提高程式碼的可讀性、可維護性與擴展性,幫助開發者打造更優雅的解決方案。
    👉 消息來源
  • 強化 MCP 閘道:緩解 Java 應用程式中的 7 月 28 日安全風險 (DZone Java)
    本文探討即將發布的 7 月 28 日 Model Context Protocol (MCP) 規範,如何為 AI 整合帶來重大里程碑。文章聚焦於如何透過強化 MCP 閘道來緩解 Java 應用程式中的安全風險,特別是在捨棄有狀態連線後如何確保安全性。對於開發者在 AI 系統中實施安全措施提供了重要指南。
    👉 消息來源
  • 使用 Java 21 虛擬執行緒緩解動態 API 轉換中的快取風暴 (DZone Java)
    本文討論如何在動態 API 轉換服務中,利用 Java 21 的虛擬執行緒 (Virtual Threads) 來緩解快取風暴(Cache Stampedes)問題。在 API 持續演進的現代軟體開發中,維護向後相容性成本高昂。虛擬執行緒的輕量特性有助於提升應用程式在處理高併發快取失效時的效能與穩定性。
    👉 消息來源
  • AGENTS.md 讓你的 Java 程式碼庫為 AI 代理程式做好準備 (DZone Java)
    本文介紹 AGENTS.md 如何幫助開發者將 Java 程式碼庫調整為可供 AI 程式碼代理程式(如 Cursor、GitHub Copilot Agent Mode)理解與操作的格式。在 2026 年,軟體開發模式已轉變為 AI 協作,這項技術能讓 AI 代理程式更有效地導航、偵錯並重構程式碼,提升開發效率。
    👉 消息來源
  • 從標準執行緒傾印中偵測虛擬執行緒鎖定 (Pinning),以及為何常見旗標在事故中無效 (Reddit r/java)
    本文深入探討如何從標準執行緒傾印 (thread dump) 中偵測 Java 虛擬執行緒 (Virtual Threads) 的鎖定 (pinning) 問題,並解釋為何在緊急情況下,傳統的偵測旗標往往效果不彰。這對於開發者在診斷與最佳化使用虛擬執行緒的應用程式效能時,提供了關鍵的偵錯技巧與深入理解。
    👉 消息來源
  • 使用 GraalVM 沙盒化腳本擴展 (Reddit r/java)
    本教學文章介紹如何利用 GraalVM 的沙盒功能來安全地執行腳本擴展。這對於需要在 Java 應用程式中整合第三方腳本或使用者自定義程式碼的場景至關重要,可有效隔離潛在的安全風險並確保系統穩定性。文章提供了實用的實作方法與安全考量。
    👉 消息來源
  • 全面性的 JVM 原始型別雜湊表基準測試 (Reddit r/java)
    本文提供了關於 JVM 原始型別雜湊表的全面性基準測試結果。雜湊表是許多應用程式中關鍵的資料結構,其效能直接影響整體系統表現。這份詳細的效能分析,對於需要最佳化程式碼中資料結構選擇的開發者而言,提供了重要的參考數據與最佳化方向。
    👉 消息來源
  • hardwood dive — 在瀏覽器中檢查 Parquet 檔案 (Reddit r/java)
    本文介紹了一款名為「hardwood dive」的工具,它允許開發者直接在瀏覽器中檢查 Parquet 檔案的內容與結構。Parquet 檔案在數據分析和資料湖 (Data Lake) 中廣泛應用,此工具提供了一種便捷的方式來快速預覽和驗證資料,對於處理大數據的 Java 開發者十分實用。
    👉 消息來源
  • JVM 內建安全性:安全的程式碼庫稽核管道 (Reddit r/java)
    本文介紹如何將安全性深度整合到 JVM 中,建立一個「安全的程式碼庫稽核管道」。這項技術旨在從源頭確保 Java 應用程式的安全性,透過自動化的稽核流程來識別潛在的漏洞與惡意程式碼。對於追求高安全標準的企業級 Java 開發者來說,這提供了先進的防禦策略。
    👉 消息來源

💬 社群討論

  • Java 紀錄片 (Inside Java)
    這部紀錄片講述了 Java 從 Sun Microsystems 內部代號「Oak」的 humble beginnings,如何演變成為企業軟體與數十億裝置的全球標準。內容涵蓋了 Java 發展歷程中的創新、策略轉變以及社群的強大凝聚力,為開發者回顧這門語言的深遠影響。
    👉 消息來源
  • AI 找到程式錯誤,誰來修補你的終止維護 (EOL) Java 程式碼? (Foojay)
    本文探討 AI 模型發現舊版程式碼漏洞的現象,並引發關於終止維護 (EOL) Java 程式碼安全修補的討論。文章指出,即使是資深程式碼中也可能存在長期未被發現的錯誤,凸顯了持續更新與維護的重要性,對於開發者思考傳統軟體生命週期與新興 AI 審計工具的結合提供了見解。
    👉 消息來源
  • 我們如何「作弊」擊敗 HotSpot 效能(但並非負面意義) (Foojay)
    本文分享 ParparVM 如何在效能上從比 HotSpot 慢 4.21 倍提升到幾何平均數的同等水準,甚至在部分基準測試中超越 HotSpot,且記憶體使用量低於 JVM。作者介紹了其背後的架構:無框架 C 程式碼生成、BiBOP 頁堆與一種簡化的 Valhalla 實作,為 JVM 效能最佳化提供了獨特視角。
    👉 消息來源
  • 95% 的 AI 專案失敗,原因何在?- Josh Long | The Marco Show (Reddit r/java)
    由 Spring 倡導者 Josh Long 在 The Marco Show 中探討為何高達 95% 的 AI 專案會遭遇失敗。此討論深入分析了 AI 專案從概念到落地的挑戰,包括技術、策略與組織層面的問題。對於參與 AI 專案的開發者、架構師與專案經理,這提供了寶貴的經驗教訓與反思。
    👉 消息來源
  • 提問 Java Champion – 等待發掘的寶藏 (Reddit r/java)
    這是一項社群活動,邀請開發者向 Java Champion 提問,從中獲取寶貴的技術見解與實戰經驗。透過與業界頂尖專家的互動,開發者有機會學習到解決複雜問題的思路、最佳實踐以及對 Java 生態系趨勢的獨到見解,對於個人成長與專業發展極具啟發性。
    👉 消息來源
  • 一個與供應商無關的 Java 分散式鎖定 – 歡迎提供回饋 (Reddit r/java)
    本文介紹了一個為 Java 應用程式設計的供應商無關分散式鎖定實作,並公開徵求社群回饋。在分散式系統中,正確的鎖定機制對於資料一致性與資源管理至關重要。此設計旨在提供高度靈活性與可移植性,對於參與分散式系統架構設計的開發者具有參考價值。
    👉 消息來源
  • Java 中的 ADT (代數資料型別) (Reddit r/java)
    本文深入探討如何在 Java 中實作代數資料型別 (Algebraic Data Types, ADT),儘管 Java 並非原生支援。文章展示了如何利用 Java 的類別 (Class) 與介面 (Interface) 特性來模擬 ADT,這有助於建構更具表達力、更安全的資料結構,並提升程式碼的健壯性與可讀性。
    👉 消息來源
  • Maven Central Publisher Pro 與發布限制 – 2026 年 7 月更新 (Reddit r/java)
    本文提供了 Maven Central Publisher Pro 和其發布限制的 2026 年 7 月更新資訊。對於 Java 開發者社群而言,Maven Central 是重要的套件儲存庫。瞭解這些更新與限制,對於開源專案維護者和企業內部函式庫發布者至關重要,可確保順利發布和管理套件。
    👉 消息來源
  • 忽略向下相容性,將 String 定義為密封類別 (sealed class) 是否合理? (Reddit r/java)
    本文探討了一個有趣的 Java 語言設計問題:如果拋開向下相容性,將 `String` 類別定義為密封類別 (sealed class) 是否有意義。這引發了關於語言設計原則、不變性與擴展性之間的權衡的討論,對於對 Java 核心語言演進和物件導向設計有興趣的開發者具有啟發性。
    👉 消息來源
  • 日本電視節目重現 30 年前 JavaOne 大會的 Java Ring (Reddit r/java)
    日本某電視節目重現了 30 年前在 JavaOne 大會上發放的 Java Ring,這款具有歷史意義的穿戴式裝置再次引起了關注。這不僅是對 Java 輝煌歷史的懷舊回顧,也展示了 Java 在早期物聯網概念中的前瞻性。對於 Java 社群而言,這是一個有趣的文化交流與歷史回顧。
    👉 消息來源
  • 討論:Java 中字串內插 (String Interpolation) 的未來發展? (Reddit r/java)
    本文探討了 Java 中字串內插(String Interpolation)功能的未來發展方向與潛在提案。隨著現代程式語言對此功能的需求日益增加,Java 社群也在積極討論如何以更簡潔、更高效的方式處理字串格式化。這場討論為 Java 語言設計的未來走向提供了重要的社群觀點。
    👉 消息來源

💡 心得總結

本週的 Java 與 Spring 生態系可謂精彩紛呈,特別是在新版本發布與 AI 整合方面展現了顯著進展。JDK 27 已進入 RDP1 階段,且其核心的 G1 垃圾回收器將成為所有環境的預設值,這對未來 Java 應用程式的性能表現將產生深遠影響。同時,Valhalla 專案的 JEP 401(Value Objects)正式提案以 JDK 28 為目標,預示著 Java 核心語言將迎來更高效能與更具表現力的資料型別。Spring AI 2.0 的相關解決方案與本地 LLM 整合教學,則明確指出 Java 在人工智慧領域的應用正逐步深化,提供開發者更多實作機會。此外,JEP 540 提出的簡潔 JSON API 孵化計畫,也預示著 Java 在標準化資料處理方面將持續優化,簡化開發流程。

對於台灣的 Java 開發者社群,本週的資訊提醒我們應持續關注 JDK 的演進,特別是像 G1 預設化這樣的基礎性能變革,及早進行評估與調校。Spring AI 的快速發展,也鼓勵開發者積極探索如何將生成式 AI 整合到企業級 Java 應用程式中,提升產品智能化水準。此外,針對虛擬執行緒的偵錯技巧、分散式鎖定設計等深度技術文章,為資深開發者提供了優化高併發系統的實用指引。社群討論中關於 ADT、String 密封類別的思考,則提供了一個探討 Java 語言設計哲學的平台,激發開發者對未來語言演進的想像。

本篇文章的內容為老喬原創、二創或翻譯而來。雖已善盡校對、順稿與查核義務,但人非聖賢,多少仍會有疏漏之處難以避免。如果大家有任何問題、建議或指教,都歡迎在底下留言與老喬討論!

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

nineteen − 16 =

返回頂端