- JLS - Java 语言规范
- JSR - Java Specification Requests。正式文档,描述了为添加到 Java 平台而提出的规范和技术。
- JEP - JDK 增强提案
这三者之间有什么区别(或关系)?
有些人认为这只是单词含义的问题。我认为还有更多,但让我们从单词开始。
在一般情况下:
如您所见,这些词本身的简单英语含义并没有多大帮助。我们需要更多的上下文。在这种情况下,上下文位于您链接到的页面中。
这是 Java 语言的规范。JLS 指定 Java 编程语言的语法和其他规则,说明什么是或不是有效的 Java 程序。它还指定程序的含义;即当您运行(有效)程序时会发生什么。
JSR 是作为 Java 社区流程 (JCP) 的一部分创建的文档,它为团队开发新规范设置了范围。这些规范 (AFAIK) 始终与 Java 相关,但它们经常解决不会成为核心 Java SE 或 Java EE 技术的问题。典型的 JSR 的主题材料是一种比较成熟的技术;即处于可以指定的状态。(如果您尝试过早地制定规范,那么您通常会得到一个糟糕的规范。其他事情也可能导致这种情况。)
JEP 是提议对 Java 核心技术进行增强的文档。这些建议通常用于尚未准备好指定的增强功能。正如 JEP-0 文件所述,JEP可能要求探索新颖(甚至是“古怪”)的想法。一般来说,原型设计将需要区分可行和不可行的想法,并将它们澄清到可以产生规范的程度。
所以JEP、JSR和规范之间的关系是这样的:
JEP 提出并开发实验性的想法,直到可以指定的程度。并非所有 JEP 都能实现。
JSR 采用成熟的想法(例如源自 JEP),并产生新的规范或对现有规范的修改。并非所有 JSR 都能实现。
规范是 JSR 的常见工作产品。(其他包括接口的源代码和参考实现。) JLS 是规范的一个示例。其他包括JVM规范、Servlet和JSP规范、EJB规范等等。