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

时间:2017-08-08 07:28:57

标签: classloader openjdk dynamic-class-loaders

根据JAVA,java是一个开放源代码,它为什么提供API,以便供应商可以为该API编写自己的实现/具体类。 因此,它遵循开源的java,所以我只是想为什么他们不为jdk提供API,为什么他们提供具体的类作为JDK的一部分?

2 个答案:

答案 0 :(得分:1)

在谈论Java作为开发平台时,Java一词严重超载。

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

每个JSR提供三件事:

  1. 一个规范,在这种情况下有三个部分精确定义Java平台:Java语言规范(JLS),Java虚拟机规范(JVMS)和标准类库定义(API文档)。
  2. 参考实施(RI)。如果您愿意,这可以证明规范可以实现。对于Java SE,这是OpenJDK项目(这是Sun Microsystems在2007年开源的)。然而,这只是源代码,不同的人使用它来构建二进制发行版(Oracle,Azul,Red Hat等)。
  3. 技术兼容性套件(TCK)。希望开发规范的独立实现以验证他们编写的内容符合规范的人使用此方法。像IBM和Azul这样的人将它用于J9和Zing JVM。
  4. 为了回答您的问题,Java SE JSR提供了API的定义,OpenJDK提供了这些API的开源实现,然后几家公司创建了这些API的二进制发行版。

答案 1 :(得分:0)

  

根据JAVA,java是一个开源,它提供了它的原因   API使供应商可以编写自己的实现/具体   该API的类。

Java本身不提供任何API,java语言由“Java语言规范”和“JVM规范”组成。供应商可以自由实施这些规范 就像openjdk是Java语言规范的实现一样,Oracle热点VM就是“JVM规范”的实现