何时使用 java.* 和 jdk.* 包

use*_*302 2 java sun java-11

我正在使用 IntelliJ 和 JDK 11。在库包中,我看到两种类型的包命名。java.*jdk.*示出在下面的图像,如:

在此处输入图片说明

jdk.*软件包有sun.*在他们里面包。这对开发人员意味着什么?避免使用jdk.*/sun.*这里写的一般建议是:https : //www.oracle.com/java/technologies/faq-sun-packages.html

NoD*_*und 5

你误读了:这些不是包,而是模块。

您应该使用java.*模块并避免使用,jdk.*因为它们的访问/api 不能保证稳定。sun(和com.sun.*) 主要移入jdk.*模块。

这一切都归结为JEP

JDK 的模块化结构实现了以下原则:

  • 标准模块的规范由 JCP 管理,其名称以字符串“ java.”开头。

  • 所有其他模块只是 JDK 的一部分,名称以字符串“ jdk.”开头。