战神4 幕后花絮 概念艺术_Java 9幕后花絮:新功能从何而来?

战神4 幕后花絮 概念艺术

JCP

找出Java幕后发生的事情,以及新功能如何实现

在上一篇文章中,我们介绍了即将发布的Java 9版本的新功能和尚待解决的功能,并简要提到了将新功能添加到下一个版本之前要经历的过程。 由于此过程几乎影响了所有Java开发人员,但大多数人对此知之甚少,因此本文将重点介绍内部人员对Java的看法(以及如何建议您一直想要的新功能)。 我们认为了解新功能如何生活的最佳方法是询问负责将其实现的人。

我们与2位Java执行委员会成员Gil Tene和Werner Keil以及伦敦Java社区成员Richard Warburton进行了交谈,并向他们询问了Java的新功能以及他们希望将来看到什么样的新功能。 这篇文章将涵盖面试的第一部分。

但在此之前,以下是主要参与者,这些成员将参与创建新功能并对其进行投票:

–在广泛的主题或特定的代码主体方面具有共同利益的个人和组织。 安全,网络,Swing和HotSpot是一些示例。

项目 –产生大量代码,文档或其他努力的工作。 必须由至少一个团体赞助。 最近的示例是Lambda项目,Jigsaw项目和Sumatra项目。

JDK增强提案 ( JEP )–当需要进一步探索时,允许在JCP之前或与之并行地非正式地推广新规范。 与JSR不同,它可能还包含没有规范级可见性的功能(例如,新的垃圾收集器或JIT实现)。 接受的JEP成为JDK路线图的一部分,并分配一个版本号。

Java规范请求 ( JSR )–该功能的实际规范在此阶段发生,可以通过组/项目,JEP或来自单个JCP(Java社区过程)成员来进行。 通常会为每个Java版本打开一个伞式JSR(也称为平台JSR),Java 9尚未实现。社区的每个成员也可以提出新的Java规范请求。

新功能如何进入Java?

Warburton: “真正的答案是有人想要该功能。 该人可以是大型供应商的内部工程师或项目经理,也可以是社区的外部成员。 无论哪种方式,都需要满足严格的标准:

  • 严重的用户需求:这必须是对整个社区的共识。 示例:Java SE 8添加了lambdas-这项功能已经争论了很多年,并且已经被人们要求。
  • 经过试验和测试:标准必须持续很长时间,并且修改已经建立的标准是非常困难且昂贵的过程。 结果是JCP(Java社区流程)并不是最前沿。 一旦技术为企业采用做好了准备,那么它就是一个去处。
  • 并非每个供应商都独有:标准必须适合所有供应商。 例如:弱/软/幻像引用与垃圾收集器交互,因此以一种试图最小化它们对GC设计的限制的方式指定了它们。

“一旦确定您的功能是一个好主意,就需要开始标准化过程。 这涉及到提出一个JSR(Java规范请求),它是更改Java的基本单元。 JSR需要多次投票。 首先,批准在此主题上启动JSR是一个好主意。 每当进行公共审核时,都要反复进行迭代,以确保JSR朝着正确的方向前进。 最终是时候批准标准了。

Tene: “ Java长期以来一直在仔细和有意识地进行增强。 在历史上,仍然使Java比几乎所有其他编程语言和环境更成功的事情之一是,它在避免Swift采用“最新的有趣事物”方面取得了相对的成功,以及它作为平台的相对一致性。 在整个平台(Java SE,EE等)整个平台上都是如此,但在Java SE平台(我将大部分精力集中在Java SE平台上)中,可能最清楚地遵循了这一点。 集合,NIO,泛型,平台优化的并发实用程序,MethodHandles以及最新的Lambda表达式和流库支持都是很好的示例,这些功能随着时间的流逝而被添加并被广泛采用,显示了它们对平台的真正价值及其重要性。不只是短暂的时尚。”

“ JCP(Java社区流程)负责通过JSR捕获新功能。 成功的独立JSR可以标准化一组特定功能或行为的语义。 但是,当功能成为平台JSR的必需部分并由此成为Java SE或Java EE平台的组成部分时,通常会证明该功能的最终成功和采用。 自从创建OpenJDK以来,我们已经看到Java SE中有关功能的早期阶段的许多工作已经从在JSR中开发到在JEP中开发(JDK增强建议)。 它们最终仍然像以前一样经过规范和完成,并且也成为Platform JSR的一部分,但是我们看到了更多的开放开发,以及更多的试验(不一定要成为JSR)。”

Keil: “ 3个竞争的JSON库,一个用于Java EE,另一个是Oracle专有的,与Java ME 8捆绑在一起,而另一个基于JEP的独立的Java SE 9方法可能是最好的例子之一,这可能会出错并且与用户的使用相悖。开发人员的需求或为Java设置一个标准的目标。 另一个可能是Java SE 8(JavaFX + JSR 310)引入的重叠和很大程度上不兼容的日期/时间API,而“ java.util”下以前存在另外两个库。 Java架构师提供了输入和建议,但是从日期/时间API的角度来看,只有他们或其他人(包括一些执行委员会成员)指出的最糟糕的问题得以解决,而其他问题则被消除了。”

您能否分享您在Java社区流程中的个人经历?

Keil: “前一段时间,我本人和共同规范负责人Antoine Sabot-Durand提出了一种JSR,用于标准化的基于CDI的社交媒体连接器,以及类似的基于JSON,REST或OAuth等安全标准的类似API。 JSR被8:5的绝大多数拒绝。 鉴于Seam Social和Red Hat的整个Seam生态系统都被新项目取代了,就像整个JBoss服务器在那个时候获得一个新的名称和品牌(WildFly)一样,由此产生的开源项目Agorava很自然地替代了Seam我们为JSR 357提出的社交和许多想法。”

社交媒体API执行委员会投票结果

社交媒体API执行委员会投票结果

Tene: 作为JCP执行委员会的一部分,我不得不考虑批准新的JSR。 在不止一个案例中,我投票拒绝了我认为不属于该平台的JSR(并主张其他人也这样做),但是大多数自然适合Java生态系统的JSR的门槛并不高。只要JSR负责人签署就可以完成所涉及的详细工作和流程。

Warburton: “我对日期和时间库有所帮助。 我认为这使我对需要完善功能或方法签名的每个单元的详细程度有了更多的了解。 人们投入大量时间尽最大努力使这些API正确无误。”

翻译自: https://www.javacodegeeks.com/2014/10/java-9-behind-the-scenes-where-do-new-features-come-from.html

战神4 幕后花絮 概念艺术

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ID生成器 雪花算法

背景:在很多业务场景下,我们都需要一个唯一的 ID 来进行一些数据的交互,那么如何生成这个唯一的 ID 呢?如果在单机的情况下,生成唯一ID,可以利用机器内存的特点,通过内存分配即可。但我们线上的…

python anaconda安装_Python - 安装并配置Anaconda环境

$ py --version # 当前默认python版本 Python 3.7.1 $ conda create --name testpy2 python2.7 pandas # 创建名为testpy2的运行环境,并安装pandas包及其依赖包 Solving environment: done ## Package Plan ## environment location: D:\DownLoadFiles\anaconda3\en…

jstack调试_增压的jstack:如何以100mph的速度调试服务器

jstack调试使用jstack调试实时Java生产服务器的指南 jstack就像U2一样-从时间的黎明就一直在我们身边,我们似乎无法摆脱它 。 除了笑话,到目前为止,jstack是您的工具库中用于调试实时生产服务器的最方便的工具之一。 即便如此,我仍…

C/C 输入输出缓冲区

【导读】:本文介绍C与C 输入输出缓冲的一些操作与特性。以下是正文(1)c 中cin、cout,cerr和c的stdin、stdout、stderr都是同步的,即iostream 对象和 and cstdio流是同步的,同步关系如下:同步即表…

python输入input数组_python怎么输入数组

python怎么输入数组? python输入数组 一维数组:arr input("") //输入一个一维数组,每个数之间使空格隔开 num [int(n) for n in arr.split()] //将输入每个数以空格键隔开做成数组 print(num) //打印数组 一维数组输入输出示例&a…

eclipse 扩展_Eclipse扩展的轻量级集成测试

eclipse 扩展最近,我为Eclipse扩展点评估引入了一个小助手。 辅助程序努力减少通用编程步骤的样板代码,同时增加开发指导和可读性。 这篇文章是希望的后续文章,它显示了如何将实用程序与AssertJ定制断言结合使用,以编写针对Eclip…

深入理解右值引用,move语义和完美转发

move语义最原始的左值和右值定义可以追溯到C语言时代,左值是可以出现在赋值符的左边和右边,然而右值只能出现在赋值符的右边。在C 里,这种方法作为初步判断左值或右值还是可以的,但不只是那么准确了。你要说C 中的右值到底是什么&…

java future用法_纯干货:Java学习过程中的21个知识点和技术点

我们在Java学习过程中要学会抓重点,善于总结,Java学习过程中常见的21个知识点和技术点你知道吗?下面和千锋广州小编一起来看看吧!1. JVM相关对于刚刚接触Java的人来说,JVM相关的知识不一定需要理解很深,对此…

如何优雅地检测类型/表达式有效性?

注1:本文至少需要编译器支持C 11。注2:本文不考虑使用宏。一、老办法在写C 的时候,有时候可能需要检查一个类是否有特定的成员类型,例如:// 检查 T::type 是否存在,存在则 value 为 true,否则为…

swagger api文档_带有Swagger的Spring Rest API –公开文档

swagger api文档创建API文档后,将其提供给涉众很重要。 在理想情况下,此发布的文档将足够灵活以解决任何最后的更改,并且易于分发(就成本以及完成此操作所需的时间而言)。 为了使之成为可能,我们将利用我在…

nuxt解决首屏加载慢问题_一个 Node 脚本让你的前端项目加载速度飞起来

写在最前面我的原创什么声明变成什么鬼了……前言随着前端三大框架的盛行,越来越多的前后端分离项目在服务器上跑了起来,随之而来,开发者也慢慢发现了这种开发模式所带来的弊端,其中之一就是首屏加载速度特别慢,因为虽…

数据库连接配置tomcat_Tomcat到Wildfly:配置数据库连接

数据库连接配置tomcat该摘录摘自《 从Tomcat到WildFly 》一书,您将在其中学习如何将现有的Tomcat体系结构移植到WildFly,包括服务器配置和在其顶部运行的应用程序。 WildFly是完全兼容的Java Enterprise Edition 7容器,与Tomcat相比&#xf…

左值、右值、左值引用、右值引用

【导读】:本文主要详细介绍了左值、右值、左值引用、右值引用以及move、完美转发。左值和右值左值(left-values),缩写:lvalues右值(right-values),缩写:rvalues直接上官网…

wxpython界面切换_wxpython实现按钮切换界面的方法

本文实例为大家分享了wxpython按钮切换界面的具体实现代码,供大家参考,具体内容如下 #-*- coding:utf-8 -*- import wx class TestFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self,None,-1,u登陆,size(370,280),stylewx.MINIMIZE_BOX| wx.…

jboss 4.3.0_JBoss BPM Suite 6.0.3版本的5个实用技巧

jboss 4.3.0上周,红帽发布了JBoss BPM Suite的下一个版本,标记为6.0.3 ,已订阅的用户可以在其客户门户中使用。 如果您对本发行版中的新增功能感到好奇,请在客户门户网站上在线查看发行说明和其余文档 。 我们正在寻找一些简单的…

C 条件变量使用详解

condition_variable介绍在C 11中,我们可以使用条件变量(condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。其主要成员函…

pannel添加的子窗体很大_超简单的地瓜粉焖子做法全解,零失败

总以为做焖子是一项很大的工程,如果朋友知道你会做焖子定会用惊叹的语气崇拜你,想多一项厨艺吗,想让家人吃上自己亲手做的焖子吗?使用艺琳农场的地瓜粉一定让你出手不凡的,超简单,往下看哦新手为了担心霍霍…

多线程队列的算法优化

【导读】:本文主要讲解多线程队列的优化。多线程队列(Concurrent Queue)的使用场合非常多,高性能服务器中的消息队列,并行算法中的Work Stealing等都离不开它。对于一个队列来说有两个最主要的动作:添加&am…

linux 文件大小_整理 | Linux下列出目录内容命令

IT服务圈儿有温度、有态度的IT自媒体平台来源:良许Linux(ID:liangxuxiansheng)在 Linux 中,有非常多的命令可以让我们用来执行各种各样的任务。当我们想要像使用文件浏览器一样列出一个目录下的内容时,大家第一时间想到的是 ls 命…

多线程程序中操作的原子性

0. 背景原子操作就是不可再分的操作。在多线程程序中原子操作是一个非常重要的概念,它常常用来实现一些同步机制,同时也是一些常见的多线程Bug的源头。本文主要讨论了三个问题:1. 多线程程序中对变量的读写操作是否是原子的?2. 多…