JDK的概念,为什么要这样设计

Concept of JDK ,why it is design like this

根据 JAVA ,java 是一个开放源代码,这就是它提供 API 的原因,以便供应商可以编写自己的 implementation/concrete 类 对于那个 API 。 因为 java 它遵循开源所以我只是在想为什么他们不为 jdk 提供 API 为什么他们提供具体的 类 作为 JDK 的一部分?

As per the the JAVA ,java is an open source thats why it provides the API's so that vendors can write their own implementation/concrete classes for that API .

Java 本身不提供任何 API,java 语言由 "Java Language Specifications" 和 "JVM Specifications" 组成。供应商可以自由实施这些规范。
就像 openjdk 是 Java 语言规范的实现,而 Oracle hotspot VM 是 "JVM Specifications"

的实现

在谈论 Java 作为开发平台时,术语 Java 被严重超载了。

核心 Java 平台是通过 Java 社区流程 (JCP) 定义的,它创建了许多 Java 规范请求 (JSR),涵盖 Java 的不同方面功能(这包括 Java ME、Java SE 和 Java EE 以及其他一些辅助的东西)。 Java 的每个版本都有自己的 JSR;在 JDK 9 的情况下,这是 JSR 379。

每个 JSR 提供​​三样东西:

  1. 一个规范,在本例中包含三个精确定义 Java 平台的部分:Java 语言规范 (JLS)、Java 虚拟机规范 (JVMS)和标准 class 库定义(API 文档)。
  2. 参考实现 (RI)。如果您愿意,这是可以实现规范的证明。对于 Java SE,这是 OpenJDK 项目(这是 Sun Microsystems 在 2007 年开源的项目)。然而,这只是源代码,不同的人使用它来构建二进制发行版(Oracle、Azul、Red Hat 等)。
  3. 技术兼容性工具包 (TCK)。想要开发规范的独立实现的人使用它来验证他们编写的内容是否符合规范。 IBM 和 Azul 等人将其用于 J9 和 Zing JVM。

为了回答您的问题,Java SE JSR 提供​​了 API 的定义,OpenJDK 提供了这些 API 的开源实现,并且然后,几家公司创建了这些 APIs.

的二进制分布