我正在使用 IntelliJ 和 JDK 11。在库包中,我看到两种类型的包命名。
java.*
和 jdk.*
如下图所示:
jdk.*
包里面有sun.*
包。这对开发人员意味着什么?避免使用 jdk.*/sun.*
的一般建议是否写在此处:https://www.oracle.com/java/technologies/faq-sun-packages.html?
你误会了:这些不是包,而是模块。
你应该使用
java.*
模块并避免 jdk.*
因为他们的 access/api 不能保证稳定。 sun
(和com.sun.*
)大部分被移入jdk.*
模块。
这一切都归结为 JEPs:
JDK的模块化结构实现了以下原则:
标准模块,其规范由 JCP 管理,名称以字符串“
”开头。java.
所有其他模块只是 JDK 的一部分,并且名称以字符串“
”开头。jdk.