合肥达内IT培训
美国上市IT培训机构

4001118989

达内:改变软件开发的5个Java9新特性

  • 时间:2017-04-12 14:57
  • 发布:佚名
  • 来源:网络

今日我们已经对Java 9中所等待的特性有了一个很明晰的图景。假如Java 8能够被描绘为主要是lambdas表达式、streams和API改变的话,那么Java 9即是对于Jigsaw、额定的实用工具和内部的改变。在合肥java培训这篇文章中,收集了一些我们认为是Java 9中最等待的特性——除了一般的猜想以外,Jigsaw项目,承当了打破JRE并对Java核心组件模块化的任务。

这里有一些特性是Java 9中绝对必要了解的,其间的一些已经在前期的发布版本中为你捣鼓做好了预备。

合肥Java培训机构

1.Java + REPL = jshell

是的。之前我们怀疑Kulla项目是否会在Java 9中准时发布,但现在已得到了官方确认。下一版发布的Java将会有称为jshell的新命令行工具,它会添加本地支持和以Java方式对REPL(交互式解释器)进行推广。意思是说,如果你想只运行几行Java代码,你不必把它包装进一个单独的工程或者方法。

噢,你可以忘掉那些分号了:

-> 2 + 2

| 表达式的值是4

| 将临时变量$1的类型设为int

还有一些像REPL加载项一样的替代品会增加到流行的IDE和解决方案中,就像Java REPL网页控制台。但目前为止,还没有官方的或者合适的方式来这么做。jshell在早期的版本中已经可以用了,等着你给它来个测试运行。

2、微基准测试要来了

由Alexey Shipilev开发的Java微基准测试套件(Java Microbenchmarking Harness)正在其进化的下一阶段,并加入Java作为官方基准解决方案。我们真的很喜欢在Takipi做基准,所以一套标准化的执行方式是我们期待的。

JHM是一组用来编译、运行和分析nano/micro/milli/macro基准的套件。当涉及到精确基准评估,对结果产生很大影响的能力将备受关注,比如预热时间和优化。当你以微秒或纳秒计时的情况下尤其如此。所以,如果你想要更加精确的结果来帮助跟踪基准以做出正确的决定,JMH是你的最佳选择——并且现在它已经成为Java 9的同义词了。

3、G1会成为新的默认垃圾收集器吗?

我们经常听说的一个误解是:Java只有一个垃圾收集器,而事实上它有4个。Java 9中,仍有一个运行提议,关于替换由Java 7引入的G1默认垃圾收集器(并行/吞吐量收集)的讨论。不同收集器之间差别精简概述,可以查看这篇里的文章。

通常来说,G1被设计来更好地支持大于4GB的堆,并且不会造成频繁的GC暂停,但当暂停发生时,往往会处理更长时间。最近我们和Outbrain的性能专家Haim Yadid讨论了关于GC的方方面面,来帮助你了解更多各收集器之间不同的权衡。同样,如果你想要深入了解相关讨论,那么hotspot-dev和jdk9-dev的邮件组是个开始学习不错的地方。

4、未来是HTTP 2.0

官方的HTTP 2.0标准是几个月之前被批准的,基于Google的SPDY算法构建。SPDY已经展示了相对HTTP 1.1巨大的速度提升,范围在11.81%到47.7%之间,并且它已经存在于大多数现代的浏览器中了。Java 9将全面支持HTTP 2.0,并且为Java配备一个全新的HTTP客户端来替代HttpURLConnection,并且同时还实现HTTP 2.0和websockets。

5、进程API得到了巨大的推动

到目前为止,通过Java来控制和管理操作系统进程能力有限。例如在早期版本的Java中,为了做一些简单的事情,像得到进程PID,要么访问本机代码,要么用某种神奇的临时解决方法。此外,还可能需要一个对于每个平台提供不同实现来保证你得到正确的结果。

在Java 9中,除了获取Linux PID的代码,现在都像这样来获取:

publicstaticvoidmain(String[] args)throwsException {

Process proc = Runtime.getRuntime().exec(newString[]{"/bin/sh","-c","echo $PPID"});

if(proc.waitFor() ==0) {

InputStream in = proc.getInputStream();

intavailable = in.available();

byte[] outputBytes =newbyte[available];

in.read(outputBytes);

String pid =newString(outputBytes);

System.out.println("Your pid is "+ pid);

}

}

转向像这样的代码(同样也支持所有的操作系统):

System.out.println("Your pid is"+ Process.getCurrentPid());

这一更新将扩展Java与操作系统交互的能力:全新的直接操作PID、进程名和状态的方法,操作JVM线程和进程等等能力。

好了,今天就给大家讲这么多吧,喜欢我的内容可以关注,选择合肥达内培训,不再孤军奋战,轻轻松松做IT高薪白领。合肥达内培训带领有明确目标的学子迈向成功之路!

预约申请免费试听课程

         

上一篇:你期望 iOS 11带来什么改进?达内带你先看他们意见
下一篇:合肥达内:微信公众号三种盈利模式

合肥达内IT培训这些办公问题都有哪些解决方法

合肥达内IT培训远程办公常见问题解决方法分享

合肥达内电脑培训零基础学习计算机网络编程需要掌握哪些技能

合肥达内软件测试培训软件测试都有哪些注意事项

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 视频学习QQ群

    添加QQ群:1143617948

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
江西省

贵州省

广西省

海南省