博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《深入理解Java7核心技术与最佳实践》读书笔记(1.1)---Project Coin介绍
阅读量:5925 次
发布时间:2019-06-19

本文共 5106 字,大约阅读时间需要 17 分钟。

  OpenJDK中的Coin项目(Project Coin)的目的就是为了收集对Java语言的语法进行增强的建议。在Coin项目开始之初,曾经广泛地向社区征求提议。在短短的一个月时间内就收到将近70条提议。最后又9条提议被列入考虑之中。在这9条提议中,有6条成为Java7的一部分,剩下的2条提议会在Java8中重新考虑,还有1条提议被移到其它项目中实现。这6条被采纳提议的语法新特性涉及switch语句中使用字符串整数字面量的改进异常处理的优化泛型创建简化try-with-resources语句优化变长参数的方法调用等。

  和其他对Java平台做的修改一样,Coin项目所建议的修改也需要通过JCP来完成。这些改动以JSR 334(Small Enhancements to the Java Programming Language)的形式提交到JCP。

 

看完书中一些基本内容后,带着疑问做了一些事,记录下来与大家分享。

一、Coin项目

官方网址  

Project Coin

The goal of Project Coin is to determine what set of small language changes should be added to JDK 7. That list is:

  • Strings in switch
  • Binary integral literals and underscores in numeric literals
  • Multi-catch and more precise rethrow
  • Improved type inference(推断) for generic instance creation (diamond)   
  • try-with-resources statement
  • Simplified varargs method invocation

The previously selected features of collections support and unsigned literals have been deferred and will be reconsidered in JDK 8.   

 

Coin(项目代号,由于不清楚翻译成"硬币"是否合理,因此暂时保留成英文)项目的目标是决定哪些语言特性的小范围变更将被添加到JDK 7中。变更列表如下:

  • switch语句能用String,即switch(String)
  • 二进制整数字面量以及数字字面量加下划线
  • 多catch子句以及更精准的throw抛出
  • 增强泛型实例创建时的类型推断(*)
  • try-with-resources语句
  • 简化的变长参数方法调用

后面的这段话对我没有任何意义,这里不翻译。


History

An open call for proposals period ran from February 27, 2009 through March 30, 2009. The nearly 70  that were submitted received extensive discussion on the Project Coin mailing list, .

After due consideration,  proposals were selected for inclusion in JDK 7; the list of selected proposals was . Discussion of the selected proposals continues on the  list.

This Project is sponsored by the .

 

公开的征求建议阶段在2009年2月27日---2009年3月30日(译者注:说明成富书中说的"短短1个月时间内"其实不准确,用一个月左右比较合适)。将近70份(由社区人员)提交的建议表单(被项目组收到后)在Coin项目邮件列表coin-dev中被广泛地讨论。

(在项目组成员)如期周全地考虑之后,5个左右的建议被选中加入到JDK 7中;选中的建议列表被顺序地更新。选中建议的套路继续在coin-dev列表中。

这个项目是由Compiler Group倡导发起的。


Community

  • Mailing lists
  • Bloggers
  • Wiki

就在我写这篇文章之前,我查了一下关于JDK 9的相关内容,有兴趣的同学可以看看官方的这篇文章。

JDK 9

The goal of this Project is to produce an open-source reference implementation of the Java SE 9 Platform, to be defined by a forthcoming JSR in the .

The schedule and features of this release are proposed and tracked via the , as amended by the .

Schedule

2016/05/26  
2016/12/22  
2017/01/05  
2017/02/09  
2017/02/16  
2017/03/16  
2017/07/06  
2017/07/27  

The milestone(里程碑) definitions are the same as those for , with the addition of:

  • Feature Extension Complete — The date by which JEPs and small enhancements that have been granted extensions via the  must be integrated into the master forest.

Status

We are past the  milestone, but . If you own a JEP or a small enhancement that is not yet complete then you can request an extension via the .

Features

JEPs targeted to JDK 9, so far

102:     
更新Process(进程)相关的APIs
110:     
HTTP 2客户端  译者注:HTTP 2在2013年经过首测,只支持https://
143: 
158:   
统一的JVM日志
165: 
193: 
197:   
分段代码缓存
199: 
200: 
201: 
211: 
212: 
213: 
214: 
215: 
216: 
217: 
219: 
220: 
221:     
简化DocletAPIs   译者注:第一次听说Doclet,居然早就有了,惭愧
222:     
jshell,the java shell(REPL,读-算-打印 循环)   译者注:相比是逆天功能  
223:    
224:   
 HTML5 Javadoc   译者注:Javadoc生成的HTML支持HTML 5是历史潮流,不得不从
225: 
226: 
227: 
228: 
229: 
231: 
232: 
233: 
235: 
236: 
237: 
238: 
240: 
241:     
溢出jhat工具   译者注:虽然我没有用过jhat,不明觉厉
243:     
244: 
245: 
246: 
247: 
248: 
249: 
250: 
251: 
252: 
253: 
254: 
255: 
256: 
257: 
258: 
259: 
260: 
261:      
262:   
 TIFF图像I/O
263: 
264:     
265: 
266:     
更多的并发编程内容更新
267: 
268: 
269: 
270: 
271: 
272: 
273: 
274: 
275: 
276: 
277: 
278: 
279: 
280: 
281:   
HotSpot C++单元测试框架
282: 
283: 
284: 
285: 
287: 
288: 
289:   
Applet APIs将会被标记为过时,Applet将正式告别曾经辉煌的历史舞台,被扔进历史的垃圾桶
290: 
292: 
294: 
295: 

这么多更新。。。眼花缭乱呐,以后又有的忙咯。。。

 

二、JCP组织

官网地址:

Welcome to the
Java Community Process!
Welcome to jcp.org, home of the Java Community ProcessSM (JCPSM) Program. The JCP is the mechanism for developing standard technical specifications for Java technology. Anyone can register for the site and participate in reviewing and providing feedback for the Java Specification Requests (JSRs), and anyone can sign up to become a JCP Member and then participate on the Expert Group of a JSR or even submit their own JSR Proposals. 
 
To get the most out of the site, .

For more information about the JCP Program, refer to our .

JCP(Java Community Process)的定义如下:

The JCP is the mechanism for developing standard technical specifications for Java technology。

JCP是为Java技术发展标准技术规范而成立的这么一个组织。

 

三、OpenJDK与OracleJDK区分

如果读者平时使用Linux系统写代码,我想应该会知道OpenJDK。因为Linux系统一般都是默认预装OpenJDK的,即使在shell中下载依赖,也是只有OpenJDK选项的。

有了这种体验,其实就会产生疑惑:OpenJDK和OracleJDK这两个JDK有什么区别?

维基百科中关于OpenJDK内容:

OpenJDK原是Sun Microsystems公司为Java平台构建的Java开发环境()的版本,完全自由,开放源码。Sun Microsystems公司在2006年的大会上称将对Java开放源代码,于2009年4月15日正式发布OpenJDK。甲骨文在2010年收购Sun Microsystem之后接管了这个项目。

2008年5月, 9及 8.04于发行版中发布OpenJDK,完整地基于及的OpenJDK。

2008年6月, 6(Fedora 9上的一个包版本的OpenJDK)宣布已通过测试,可以称得上是一个完全兼容的Java 6的运行环境。

2008年7月12日,接受了OpenJDK-6的不稳定版本,但目前情况已经稳定。OpenJDK也可以在、及其派生系统,如中找到。

自2008年7月,OpenJDK 7可以运行在和其他的发行版。

2009年7月,Ubuntu 9.04中的二进制版本OpenJDK在Java SE 6 中通过了所有的兼容性测试。

2015年12月,证实将于未来的新版以OpenJDK替换专属版权的。

这里所谓的开源并不是说sun将所有的JDK看家内容都给开源了。OpenJDK主要用为帮助高手了解JDK实现机制,代码实现的,还有一部分商业闭源的内容作为公司的私货没有和咱们这群屌丝程序员分享,哦不,好像这里只有我是屌丝程序员。

形象点说呢,OpenJDK就是OracleJDK的私生子(bastard,美剧Game of Thrones中John Snow老是被外人这么无情地嘲讽,心疼雪诺3秒钟)。

 

转载于:https://www.cnblogs.com/forget406/p/6059976.html

你可能感兴趣的文章
spring-session + redis 实现集群 session 共享
查看>>
TI-89T 教你在C程序里调用TI-BASIC程序,看看是否有人对这个感兴趣
查看>>
Hello Python
查看>>
#celery#周期性任务
查看>>
yum安装最新的 LNMP
查看>>
jdk8之lambda
查看>>
面试中常问的List去重问题,你都答对了吗?
查看>>
Java多线程编程 — 锁优化
查看>>
浮点型数据的输出格式
查看>>
java 生成无重复 随机数
查看>>
Swift中的区间运算符和半开区间运算符
查看>>
Cus系统beta1.2发布
查看>>
python3 UnicodeEncodeError: 'ascii' 错误
查看>>
简单链接Simplelink 传感器标签SensorTag
查看>>
Sublime Text 2 中运行 PHP
查看>>
SON Web Token设计单点登录系统
查看>>
Java中数据是如何存储
查看>>
mysql 面试知识点笔记(七)RR如何避免幻读及非阻塞读、范式
查看>>
两篇很牛的vim使用技巧
查看>>
openstack horizon国际化分析
查看>>