雖然JAVA寫了快七八年了,但是對這幾個概念還是很模糊,所以利用這次機會整理下順便跟大家分享下。
名詞解釋
- JCP
JCP全稱Java Community Process,成立于1998年,是使有興趣的各方參與定義Java的特征和未來版本的正式過程。簡單來說就是一個定義Java特性和未來發展方向的社區交流組織。
- JSR
JSR全稱Java Specification Requests,意為Java規范提案,作為正式規范文檔,描述被提議加入到Java體系中的規范和技術。JSR變為final狀態前需要正式的公開審查,并由JCP Executive Committee 投票決定。最終的JSR會提供一個參考實現,它是免費而且公開源代碼的。
- JEP
JEP全稱JDK Enhancement Proposal,意為JDK增強建議。用于探索一些新的想法,相比于JSR,JEP更為早期。許多激動人心的改動和想法都來自于JEP,比如:Java8中的lambdas。
- JLS
JLS全稱Java Language Specification,意為Java語言規范。指出Java的語法標準和一些規則, 這些規則包括了合規及不合規程序的說明。規范同時指出了程序的含義并說明了運行后將發生什么。大家可以參考下Java8的規范:
https://docs.oracle.com/javase/specs/jls/se8/html/index.html。
區別和聯系
- Java語言的變動由 Java Community Process(JCP)管理。
- JCP使用Java規范請求(Java Specification Requests,JSRs)來建議和定義對Java平臺內容的新增和修改。
- Java語言由Java語言規范(Java Language Specification,JLS)定義,對JLS的更改則根據JSR 901管理。
- JEP可以簡單理解為更為早期的JSR。