狠狠撸
Submit Search
深入模组化
Jan 20, 2018
3 likes
1,021 views
Justin Lin
認識模組的種類 處理模組依賴與封裝細節 使用模組API 建立JAR、JMOD與JIMAGE
Read less
Read more
1 of 27
Download now
Downloaded 72 times
Recommended
CH19:深入模组化
CH19:深入模组化
Justin Lin
?
認識模組的種類 處理模組依賴與封裝細節 使用模組API 建立JAR、JMOD與JIMAGE
颁贬17:反射与类别载入器
颁贬17:反射与类别载入器
Justin Lin
?
取得.class檔案資訊 動態生成物件與操作方法 認識模組與反射的權限設定 瞭解JDK9類別載入器階層 使用ClassLoader實例
颁贬02:从闯顿碍到滨顿贰
颁贬02:从闯顿碍到滨顿贰
Justin Lin
?
學習目標 瞭解與設定PATH 瞭解與指定CLASSPATH、SOURCEPATH 使用package與import管理類別 初探模組平台系統 認識JDK與IDE的對應
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Java SE 8 技術手冊第 1 章 - 闯补惫补平台概论
Justin Lin
?
簡介Java版本遷移 認識Java SE、Java EE、Java ME 認識JDK規範與實作 瞭解JVM、JRE與JDK 下載、安裝JDK
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Java SE 7 技術手冊投影片第 01 章 - 闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Java SE 7 技術手冊投影片第 14 章 - 整合資料庫
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Java SE 7 技術手冊投影片第 02 章 - 從JDK到IDE
Justin Lin
?
Java SE 7 技術手冊
颁贬16:整合资料库
颁贬16:整合资料库
Justin Lin
?
了解JDBC架構 使用JDBC API 瞭解交易與隔離層級 認識RowSet
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
?
Java SE 7 技術手冊
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
瞭解與設定PATH 瞭解與指定CLASSPATH 瞭解與指定SOURCEPATH 使用package與import管理類別 初步認識JDK與IDE的對應
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
?
Java SE 7 技術手冊
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
?
取得.class檔案資訊 動態生成物件與操作方法 瞭解JDK類別載入器階層 使用ClassLoader實例
闯补惫补平台概论
闯补惫补平台概论
Justin Lin
?
簡介Java版本遷移 認識Java SE、Java EE、Java ME 認識JDK規範與實作 瞭解JVM、JRE與JDK 下載、安裝JDK
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 7 技術手冊
自订泛型、列举与标註
自订泛型、列举与标註
Justin Lin
?
進階自訂泛型 進階自訂列舉 使用標準標註 自訂與讀取標註
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
?
Servlet & JSP 教學手冊第二版
CH1:闯补惫补平台概论
CH1:闯补惫补平台概论
Justin Lin
?
簡介Java版本遷移 認識Java SE、Java EE、Java ME 認識JDK規範與實作 瞭解JVM、JRE與JDK 下載、安裝JDK
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Justin Lin
?
Java SE 7 技術手冊
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
這個投影片是搭配《Java Tutorial》課程,你可以在 CodeData 上看到所有內容,也可以直接在 Google Play 或 Pubu 上搜尋 "Java Tutorial" 以購得電子書。
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
?
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
?
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Justin Lin
?
進階自訂泛型 進階自訂列舉 使用標準標註 自訂與讀取標註
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
?
使用 REPL 設定原始碼檔案編碼 基本模組與套件管理 認識 IDE 的使用
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
?
了解何謂 JSTL 使用 JSTL 核心標籤庫 使用 JSTL 格式標籤庫 使用 JSTL XML 標籤庫 使用 JSTL 函式標籤庫
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
?
Java SE 7 技術手冊
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
認識 Spring Boot 認識 Spring Tool Suite 遷移微網誌至 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
區別程式庫與框架 逐步善用 Spring MVC 簡介 Thymeleaf 模版 使用 Spring Security
More Related Content
What's hot
(20)
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
?
Java SE 7 技術手冊
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
瞭解與設定PATH 瞭解與指定CLASSPATH 瞭解與指定SOURCEPATH 使用package與import管理類別 初步認識JDK與IDE的對應
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
?
Java SE 7 技術手冊
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
?
取得.class檔案資訊 動態生成物件與操作方法 瞭解JDK類別載入器階層 使用ClassLoader實例
闯补惫补平台概论
闯补惫补平台概论
Justin Lin
?
簡介Java版本遷移 認識Java SE、Java EE、Java ME 認識JDK規範與實作 瞭解JVM、JRE與JDK 下載、安裝JDK
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 7 技術手冊
自订泛型、列举与标註
自订泛型、列举与标註
Justin Lin
?
進階自訂泛型 進階自訂列舉 使用標準標註 自訂與讀取標註
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
?
Servlet & JSP 教學手冊第二版
CH1:闯补惫补平台概论
CH1:闯补惫补平台概论
Justin Lin
?
簡介Java版本遷移 認識Java SE、Java EE、Java ME 認識JDK規範與實作 瞭解JVM、JRE與JDK 下載、安裝JDK
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Justin Lin
?
Java SE 7 技術手冊
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
這個投影片是搭配《Java Tutorial》課程,你可以在 CodeData 上看到所有內容,也可以直接在 Google Play 或 Pubu 上搜尋 "Java Tutorial" 以購得電子書。
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
?
瞭解封裝觀念與實現 定義類別、建構式與方法 使用方法重載與不定長度引數 瞭解static成員
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
?
認識Thread與Runnable 使用synchronized 使用wait()、notify()、notifyAll() 運用高階並行API
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Justin Lin
?
進階自訂泛型 進階自訂列舉 使用標準標註 自訂與讀取標註
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
?
使用 REPL 設定原始碼檔案編碼 基本模組與套件管理 認識 IDE 的使用
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
?
了解何謂 JSTL 使用 JSTL 核心標籤庫 使用 JSTL 格式標籤庫 使用 JSTL XML 標籤庫 使用 JSTL 函式標籤庫
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
?
Java SE 7 技術手冊
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Java SE 7 技術手冊投影片第 05 章 - 物件封裝
Justin Lin
?
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Justin Lin
?
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Java SE 7 技術手冊投影片第 15 章 - 反射器與類別載入器
Justin Lin
?
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Java SE 7 技術手冊投影片第 09 章 - Collection與Map
Justin Lin
?
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Java SE 8 技術手冊第 17 章 - 反射與類別載入器
Justin Lin
?
闯补惫补平台概论
闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Java SE 7 技術手冊投影片第 11 章 - 執行緒與並行API
Justin Lin
?
自订泛型、列举与标註
自订泛型、列举与标註
Justin Lin
?
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
?
CH1:闯补惫补平台概论
CH1:闯补惫补平台概论
Justin Lin
?
Java SE 7 技術手冊投影片第 12 章 - 通用API
Java SE 7 技術手冊投影片第 12 章 - 通用API
Justin Lin
?
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Java SE 7 技術手冊投影片第 04 章 - 認識物件
Justin Lin
?
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Java SE 7 技術手冊投影片第 16 章 - 自订泛型、列举与标註
Justin Lin
?
Java Tutorial:Learn Java in 06:00:00
Java Tutorial:Learn Java in 06:00:00
Justin Lin
?
Java SE 8 技術手冊第 5 章 - 物件封裝
Java SE 8 技術手冊第 5 章 - 物件封裝
Justin Lin
?
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Java SE 8 技術手冊第 11 章 - 執行緒與並行API
Justin Lin
?
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Java SE 8 技術手冊第 18 章 - 自订泛型、列举与标註
Justin Lin
?
2. 從 REPL 到 IDE
2. 從 REPL 到 IDE
Justin Lin
?
Ch07 使用 JSTL
Ch07 使用 JSTL
Justin Lin
?
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Java SE 7 技術手冊投影片第 07 章 - 介面與多型
Justin Lin
?
More from Justin Lin
(20)
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
認識 Spring Boot 認識 Spring Tool Suite 遷移微網誌至 Spring Boot
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
區別程式庫與框架 逐步善用 Spring MVC 簡介 Thymeleaf 模版 使用 Spring Security
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
?
使用 Gradle 結合 Gradle 與 IDE 認識相依注入 使用 Spring 核心
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
寄送純文字郵件 寄送 HTML 郵件 寄送附檔郵件
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
了解 Java EE 安全概念與名詞 使用容器基本驗證與表單驗 使用 HTTPS 保密資料傳輸
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
了解 JDBC 架構 使用基本的 JDBC 透過 JNDI 取得DataSource 在 Web 應用程式整合資料庫
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
使用 Tag File 自訂標籤 使用 Simple Tag 自訂標籤 使用 Tag 自訂標籤
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
?
了解 JSP 生命週期 使用 JSP 語法元素 使用 JSP 標準標籤 使用運算式語言(EL) 自訂 EL 函式
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
了解 Servlet 生命週期 使用 ServletConfig 與ServletContext 使用 PushBuilder 各種傾聽器的使用 繼承 HttpFilter 實作過濾器
Ch04 會話管理
Ch04 會話管理
Justin Lin
?
了解會話管理基本原理 使用 Cookie 類別 使用 HttpSession 會話管理 了解容器會話管理原理
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
取得請求參數與標頭 處理中文字元請求與回應 設定與取得請求範圍屬性 使用轉發、包含、重新導向
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
?
開發環境準備與使用 了解 Web 應用程式架構 Servlet 撰寫與部署設定 了解 URI 模式對應 使用 web-fragement.xml
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
?
認識 HTTP 基本特性 了解何為 URI 編碼 認識 Web 容器角色 了解 Servlet 與 JSP 的關係 認識 MVC/Model 2
14. 進階主題
14. 進階主題
Justin Lin
?
運用描述器 實作裝飾器 定義 meta 類別 使用相對匯入 泛型進階
13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
認識並行、平行與非同步 使用 threading 模組 使用 multiprocessing 模組 使用 concurrent.futures模組 運用 async、await 與 asyncio
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
?
使用 pdb 模組除錯 對程式進行單元測試 使用 timeit 評測程式片段 使用 cProfile(profile)察看評測數據
11. 常用內建模組
11. 常用內建模組
Justin Lin
?
處理日期與時間 認識日誌的使用 運用規則表示式 管理檔案與目錄 URL 處理
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?
使用 pickle 與 shelve 認識 DB-API 2.0 使用 sqlite3 模組 處理 CSV、JSON、XML
9. 資料結構
9. 資料結構
Justin Lin
?
認識 hashable、iterable、orderable 對物件進行排序 認識群集架構 運用 collections 模組 運用 collections.abc 模組
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
?
使用 open()函式 使用 stdin、stdout、stderr 認識檔案描述器 認識 io 模組
Ch14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin
?
Ch13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin
?
Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin
?
Ch11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin
?
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin
?
Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin
?
Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin
?
Ch06 使用 JSP
Ch06 使用 JSP
Justin Lin
?
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin
?
Ch04 會話管理
Ch04 會話管理
Justin Lin
?
Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin
?
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin
?
14. 進階主題
14. 進階主題
Justin Lin
?
13.并行、平行与非同步
13.并行、平行与非同步
Justin Lin
?
12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin
?
11. 常用內建模組
11. 常用內建模組
Justin Lin
?
10. 資料永續與交換
10. 資料永續與交換
Justin Lin
?
9. 資料結構
9. 資料結構
Justin Lin
?
8. open() 與 io 模組
8. open() 與 io 模組
Justin Lin
?
深入模组化
1.
1
2.
深入模组化 學習目標 ? 認識模組的種類 ? 處理模組依賴與封裝細節 ?
使用模組API ? 建立JAR、JMOD與JIMAGE 2
3.
模組的種類 3
4.
模組的種類 ? Java SE
9也將JDK本身做了模組化,src.zip 中的原始碼被劃分到各個模組 ? 除了可使用JAR來封裝模組之外,JDK9還有 了JIMAGE與JMOD格式 4
5.
具名模組、未具名模組 ? 如果應用程式採取模組化設計,預設就會依 賴在java.base模組之上,java.base模 組exports的套件,任何模組都可以讀取 5
6.
具名模組、未具名模組 ? 在JDK9之後多了模組,模組中的public類 別、方法、值域是否能被另一模組看見,還 要視模組設定而定 ? 在定義模組時必須記得,同一個套件不可以 同時出現在被requires的兩個模組中,這 稱為分裂套件(Split
package) ? 會導致編譯失敗,而執行時期會產生 LayerInstantiationException 6
7.
具名模組、未具名模組 ? 就算是Java SE
API,若不是java.base模 組中的類別,還是必須requires相關的模 組 ? 若使用到 javax.xml.bind、javax.rmi 等套件,還是會出現編譯錯誤 ? 必須使用--add-modules java.se.ee, 才找得到這些套件。 7
8.
顯式模組、自動模組 ? 顯式模組無法依賴在未命名模組,因為未具 名模組並沒有名稱,無法在顯式模組的模組 描述檔中進行requires 8
9.
顯式模組、自動模組 ? 自動模組有隱含的模組定義,可以讀取其他 模組,其他模組也可以讀取自動模組 ? 應用程式在遷移至模組化設計的過程中,自 動模組會是未具名模組至顯式模組之間的橋 樑 9
10.
顯式模組、自動模組 ? 並不是任何JAR都可以自動產生正確的模組 名稱 – 取得JAR的主檔名 –
去除版本號 – 替換名稱中非字母部份為句號(.) 10
11.
顯式模組、自動模組 ? 無法自動產生正確的模組名稱,此時若被放 到模組路徑的JAR檔案 – 編譯時期沒有名稱可以requires –
執行時期會產生 IllegalArgumentException,從而使得 JVM無法初始模組層而發生FindException 11
12.
顯式模組、自動模組 ? 如果同一個套件出現在模組路徑上多個既有 的JAR檔案中,由於一個套件不能出現在多 個模組,因此只有其中一個JAR能成為自動 模組,而其他會被忽略 12
13.
一般模組、開放模組 ? 讀取能力 ? 存取能力 13
14.
一般模組、開放模組 ? java.base模組exports了所有的套件, 但沒有opens套件,也沒有open模組本身, ? 任何模組都不能對java.base做深層反射 14
15.
? 因應模組化的特性,類別載入器階層有了變 化 ? 被棄用的模組可以使用@Deprecated標註 ?
某個模組如果還是得使用被棄用的模組,又 不想收到警訊,那就加上個 @SuppressWarnings("deprecation") 15
16.
requires、exports與opens ? requires transitive ?
requires static ? exports to、opens to 16
17.
requires transitive 17
18.
requires static ? requires定義了模組間的依賴關係,而且 是包含了編譯時期與執行時期的依賴關係 ?
如果某個模組是可選的,僅在編譯時期需要 ,執行時期該模組可以不用存在,那麼可以 使用requires static來設定僅在編譯時 期依賴 18
19.
exports to、opens to 19
20.
修補模組 ? 想臨時地替換掉模組中某(些)類別,像是 修補臭蟲,或進行測試時需要,也可能是臨 時性地修補分裂套件的問題 20
21.
放寬模組封裝與依賴 ? Oracle JDK非標準引數 –
--add-exports – --add-opens – --add-reads 21
22.
使用Module 22
23.
使用Module ? 只有在模組內的類別,才能呼叫所在模組的 addExports?()、addOpens()、 addReads()、addUses?() 23
24.
使用Module 24
25.
使用ModuleDescriptor ? getDescriptor()可以傳回 java.lang.module.ModuleDescripto r,這個實例代表著具名模組(包含自動模組 )的模組描述檔 ? 未具名模組的getDescriptor()會傳回 null ?
包含的是靜態的模組描述資訊 25
26.
淺談ModuleLayer ? 絕大多數的應用程式專案並不需要意識到模 組層的存在 ? 像是某種服務容器或者plugins架構的應用程 式才會使用模組層 26
27.
打包模組 ? JAR ? JMOD ?
JIMAGE 27