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