Q001
NO.10 Which two describe reasons to modularize the JDK? (Choose two.)
A. easier to understand the Java language
B. improves security and maintainability
C. easier to expose implementation details
D. improves application robustness
E. easier to build a custom runtime linking application modules and JDK modules
Ans : BD
注意,E 也是正確的,但因題目說選二個,所以 BD 為最佳解
robustness[roˋbʌstnɪs]強健
Q002
NO.8 There is a copyServiceAPI that has the org.copyservice.spi.Copy interface. To
use this service in a module, which module-info.java would be correct?
A)
module CopyConsumer {
requires CopyServiceAPI;
uses org.copyservice.spi.Copy;
}
B)
module CopyConsumer {
requires transitive org.copyservice.spi.Copy;
}
C)
module CopyConsumer {
requires org.copyservice.spi.Copy;
}
D)
module CopyConsumer {
uses CopyServiceAPI;
}
A. Option A
B. Option B
C. Option C
D. Option D
Answer: A
題目重點:
有一個 copyServiceAPI 模組,裡面有 org.copyservice.spi.Copy 介面。
問:如果要在 CopyConsumer 模組中使用這個 service,哪個 module-info.java 正確?
模組與服務的正確用法
在 Java 9+ 模組系統(JPMS):
-
提供服務的一方(provider module)在
module-info.java宣告: -
使用服務的一方(consumer module)需要:
-
requires 提供服務的 API 模組(這樣才能用介面)。
-
uses 指定服務介面(這樣
ServiceLoader才能找到)。
-
例如:
module CopyConsumer {
requires CopyServiceAPI;
uses org.copyservice.spi.Copy;
}
