wwwoldboyeducom
老男孩IT教育,只培养技术精英
深度解析Java9新特性
Java9终于发布了,Java开发工具包(JDK)也已经可供开发者下载。Java9终于有了REPLJava9的另一个特性是拥有了REPL(readevalpri
tloop)工具,这是另一个Java的长期目标,在Kulia项目中经过多年研发后终于在Java9中得以实现。Java9的REPL名为jShell,以交互式的方式对语句和表达式进行求值。开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。命令行工具的功能包含tab自动补全和自动添加分号。jShellAPI支持在IDE和其他工具中使用jShell功能,虽然这个工具本身不是IDE。REPL的缺失是高校想要把Java从学校课程中剔除的一个原因(像Pytho
和Scala之类的语言早就有REPL了)。但Scala语言的创始人Marti
Odersky质疑Java中REPL的作用,他说Java是面向语句的,而REPL是面向表达式的。Java9引入HTTP2客户端APIJava9引入了beta版的HTTP2客户端API,升级了Web核心HTTP协议,这个API同时也支持WebSocket。HTTP2API可以用来代替HttpURLCo
ectio
API,后者存在一些缺点,包括当初是为现在已经失效的协议所设计,早于HTTP1,接口定义太抽象以及使用起来不容易。Java9改进了对HTML5和U
icode的支持
fwwwoldboyeducom
老男孩IT教育,只培养技术精英
在JDK9中,Javadoc文档工具经过增强现在支持生成HTML5标记文档。U
icode80编码标准也得到支持,该标准新增8000个字符,10个块和6个脚本。Java9新增DTLS安全API为了安全,Java9新增支持DTLS(DatagramTra
sportLayerSecurity)的API。这个协议用来在客户端服务器通信中防止窃听,篡改,消息伪造等。客户端和服务端模式都提供了实现。Java9增强了SteamAPIJava的Steam让开发者能够快速运算,从而能够有效的利用数据并行计算。Java8提供的Steam能力能够利用多核架构实现声明式的数据处理。在Java9中,StreamAPI通过新增方法,实现有限制的从Stream中添加或者移除元素,遍历Stream中的元素,以及通过扩展JavaSEAPI集合实现从空值创建流的功能。Java9支持代码缓存的分割JDK9支持将代码缓存分割成段,从而提高性能并实现扩展功能,例如细粒度锁。由于使用专门的迭代器忽略非方法代码,分离非方法,剖析和非剖析代码,结果扫描时间将得到改进。某些基准的执行时间也得到改进。Java9中还有很多承上启下的特性,为未来创新打下基础或者整合、规范现有碎片化的功能,我会介绍一些有代表性的新特性。在Java虚拟机领域,JEP271U
ifiedGCLoggi
g和JEP158:U
ifiedJVMLoggi
g,对各种JVr