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

问题描述 投票:0回答:1

我正在使用 IntelliJ 和 JDK 11。在库包中,我看到两种类型的包命名。

java.*
jdk.*
如下图所示:

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

java java-11
1个回答
5
投票

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

你应该使用

java.*
模块并避免
jdk.*
因为他们的 access/api 不能保证稳定。
sun
(和
com.sun.*
)大部分被移入
jdk.*
模块。

这一切都归结为 JEPs

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

  • 标准模块,其规范由 JCP 管理,名称以字符串“

    java.
    ”开头。

  • 所有其他模块只是 JDK 的一部分,并且名称以字符串“

    jdk.
    ”开头。

© www.soinside.com 2019 - 2024. All rights reserved.