java开发用怎么软件开发_Java 9中的5个功能将改变您开发软件的方式(还有2个不会)...

java开发用怎么软件开发

有望在Java 9中发布的最令人兴奋的功能是什么?

近期不要对Java 9相对沉默而分心。JDK提交者正在努力准备下一个版本,预计在2015年12月才完成功能的下一个版本。此后,它将通过严格的测试和错误修复了将其准备于一般可用性的计划,该计划于2016年9月发布 。

今天,我们对Java 9的功能有了一个清晰的了解。如果可以将Java 8描述为lambda,流和API更改的主要版本,那么Java 9就是关于Jigsaw ,额外的实用程序和更改的内容。 在这篇文章中,我们收集了一些我们认为是针对Java 9的最令人兴奋的功能–除了通常的怀疑之外,Jigsaw项目承担了分解JRE并将Java核心组件引入模块化的使命。 。

这里有一些Java 9绝对必须了解的功能,其中一些已经在早期发行版中为您准备好了。

1. Java + REPL = jshell

是。 以前,我们怀疑Kulla项目能否在Java 9之前发布,但现在它是正式的。 Java的下一发行版将具有一个名为jshell的新命令行工具,该工具将添加本机支持并普及Java模式以实现REPL(Read-Eval-Print-Loop)。 举例来说,这意味着如果您想自己运行几行Java,则无需将其全部包装在单独的项目或方法中。 哦,分号–您可以忘记那些:

-> 2 + 2
| Expression value is: 4
|     assigned to temporary variable $1 of type int

有一些替代方法,例如流行的IDE的REPL插件和Java REPL Web控制台等解决方案,但是到目前为止,还没有正式且正确的方法来做到这一点。 jshell已在早期发行版中提供,并等待您对其进行测试。

2.微基准测试即将到来

Alexey Shipilev的Java Microbenchmarking Harness( JMH )正在迈向其发展的下一步,并加入Java作为官方基准测试解决方案 。 我们真的很喜欢在塔基皮(Takipi) 进行 基准测试 ,因此我们希望能有一种标准化的基准测试方法。

JMH是用于构建,运行和分析nano / micro / milli / macro基准测试的Java工具。 对于准确的基准测试,诸如预热时间和优化之类的因素可能会对结果产生重大影响。 尤其是当您下降到微秒和纳秒时。 因此,如果您想获得最准确的结果来帮助您按照基准测试做出正确的决定,那么今天的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 RFC在Google的SPDY算法的基础上才获得批准。 SPDY在HTTP 1.1上已显示出极大的速度改进,范围在11.81%到47.7%之间,并且其实现已存在于大多数现代浏览器中。

Java 9将完全支持 HTTP 2.0,并具有一个新的Java HTTP客户端,它将取代HttpURLConnection,并实现HTTP 2.0和websocket。

5.流程API有了巨大的提升

到目前为止,使用Java控制和管理操作系统进程的能力有限。 例如,为了执行与在Java早期版本中获取进程PID一样简单的操作,您将需要访问本机代码或使用某种神奇的解决方法。 而且,为每个平台都需要不同的实现方式,以确保获得正确的结果。

在Java 9中,期望用于检索Linux PID的代码现在看起来像这样:

public static void main(String[] args) throws Exception
{Process proc = Runtime.getRuntime().exec(new String[]{ "/bin/sh", "-c", "echo $PPID" });if (proc.waitFor() == 0){InputStream in = proc.getInputStream();int available = in.available();byte[] outputBytes = new byte[available];in.read(outputBytes);String pid = new String(outputBytes);System.out.println("Your pid is " + pid);}
}

要变成这样(也支持所有操作系统):

System.out.println(“您的pid是” + Process.getCurrentPid());

此更新将扩展Java与操作系统进行交互的能力:处理PID,进程名称和状态的新直接方法,以及枚举JVM和进程等的能力。

您在Java 9中看不到什么?

我们假定有两个有趣的功能将成为即将发布的Java版本的一部分-但现在我们知道这次将跳过它们。

1.标准化的轻量级JSON API

在我们与350位开发人员进行的一项调查中,JSON API像Jigsaw一样被大肆宣传,但是由于资金问题,它似乎没有成功。 Java平台的首席架构师Mark Reinhold在JDK 9邮件列表中:

“这个JEP将是对该平台的有用补充,但是,从总体上看,它不如Oracle为JDK 9提供资金或正在考虑为其他功能提供的其他功能那么重要。我们可能会重新考虑针对JDK 10或JDK 9的JEP。更高版本。 ”

2.货币和货币API

在其他消息中,看起来好像预期的Money and Currency API也缺少Oracle支持。 这是我们从API规范负责人Anatole Tresch得到的答案:

翻译自: https://www.javacodegeeks.com/2015/06/5-features-in-java-9-that-will-change-how-you-develop-software-and-2-that-wont.html

java开发用怎么软件开发

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

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

相关文章

php redis并发读写,PHP使用Redis实现防止大并发下二次写入的方法

本文实例讲述了PHP使用Redis实现防止大并发下二次写入的方法。分享给大家供大家参考,具体如下:PHP调用redis进行读写操作,大并发下会出现:读取key1,没有内容则写入内容,但是大并发下会出现同时多个php进程写…

理解C语言指针概念只需几分钟

点击上方蓝字关注我,了解更多咨询当我们声明一个变量或常量时,计算机系统会为这个变量或常量分配存储单元,变量的数据存储到被分配的存储单元内,对变量的赋值和取值操作都是针对存储单元的操作。C编译器是如何通过变量找到与其对应…

php做一个网页的源代码,用HTML5做一个个人网站此文仅展示个人主页界面。内附源代码下载地址...

下载说明: 1.再好的作品都不如将来要做的作品。在每一次的设计当中都能有所收获,才是设计师在web开发中最得益的。 2.本站所有作品均是杨青个人设计。如果发现模板有错,请尽情谅解。 3.如果遇到什么问htmlcss编写的个人主页,适合初…

jax-rs jax-ws_JAX-RS 2.x与Spring MVC:返回对象列表的XML表示

jax-rs jax-wsJSON是所有REST * API的王者,但是您仍然可能需要公开多种表示形式,包括XML。 使用JAX-RS和Spring MVC都非常简单。 实际上,唯一要做的就是用JAXB注释对从API调用返回的POJO进行注释。 但是在我看来,序列化对象列表时…

C语言中经典的程序设计结构:顺序、条件、循环

点击上方蓝字关注我,了解更多咨询无论使用何种编程语言,都含有程序设计的三大经典结构。即:顺序结构、条件结构和循环结构,C语言也是如此。综述顺序结构,就是一条大路走到底,没有岔路口,一步步从…

php protected const,关于const:PHP类常量 – 公共,私有还是受保护?

假设常量属性是自动公开的,对吗?有没有办法让它们成为私有的或受保护的?事先谢谢。隐藏它们的原因是什么?即使它们是公开的——它们是只读的。常量应该是公共的,因为它们描述的是关于类的不可变事实,而不是…

7-8垃圾箱分布_您认为有关垃圾收集的7件事-完全错了

7-8垃圾箱分布关于Java Garbage Collection的最大误解是什么?它的真实情况如何? 小时候,我的父母曾经告诉我,如果我学习不好,我将成为垃圾收集者。 他们几乎不知道,垃圾回收实际上是很棒的。 也许这就是为…

c语言中abort函数的使用

点击上方蓝字关注我&#xff0c;了解更多咨询1、abort函数的作用是异常终止一个进程&#xff0c;意味着abort后面的代码将不再执行。2、当调用abort函数时&#xff0c;会导致程序异常终止&#xff0c;而不会进行一些常规的清除工作。实例#include <stdio.h> #include <…

php 异常值检测,PHP中的错误处理、异常处理机制分析

例&#xff1a;$a fopen(test.txt,r);//这里并没有对文件进行判断就打开了&#xff0c;如果文件不存在就会报错?>那么正确的写法应该如下&#xff1a;if(file_exists(test.txt)){$ffopen(test.txt,r);//使用完后关闭fclose($f);}?>一、PHP错误处理的三种方式A、简单的…

c语言中如何防止数组下标越界

点击上方蓝字关注我&#xff0c;了解更多咨询1、若数组长度和下标访问值出现错误&#xff0c;则会导致数组下标越界。数组下标从0开始&#xff0c;访问值为-1。2、在使用循环遍历数组元素时&#xff0c;注意防范off-by-one的错误。对于作为函数参数传入的数组下标&#xff0c;要…

java oauth2.0_教程:如何实现Java OAuth 2.0以使用GitHub和Google登录

java oauth2.0将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录。 如果您像我一样懒惰&#xff0c;那么我想您也希望跳过填写表单和输入新密码的操作 。 只要有权限&#xff0c;许多人都希望使用第三方登录&#xff0c;只要…

c语言中数组访问越界如何理解

点击上方蓝字关注我&#xff0c;了解更多咨询1、可以通过数组下标直接访问数组中的元素。2、如果一个数组被定义为n个元素&#xff0c;那么访问n个元素是合法的。如果访问n个元素以外&#xff0c;则是非法的&#xff0c;称为访问越界。实例int a[5] {0}; //等价 int a[5] {0,…

php全部公开课,PHP公开课|这篇PHP的each()函数教学数,只为了帮你的PHP会学的更好...

【摘要】PHP作为一种超文本预处理器&#xff0c;已经成为了我们常用的网站编程语言&#xff0c;并且结合了C语言&#xff0c;Java等我们常见的编程语言&#xff0c;所以&#xff0c;有很多web开发领域的新人都看中了他的使用广泛性&#xff0c;有很多人都想了解php的内容&#…

ogm session_带有Hibernate OGM的NoSQL –第三部分:在WildFly上构建REST应用程序

ogm session欢迎回到我们的教程系列“带有Hibernate OGM的NoSQL”&#xff01; 感谢Gunnar Morling&#xff08; gunnarmorling &#xff09;创建了本教程。 在这一部分中&#xff0c;您将学习如何在WildFly服务器上运行的Java EE应用程序中使用Hibernate OGM。 使用本教程前面…

java的define,关于预处理器:Java中的#define

我开始用Java编程&#xff0c;我想知道是否相当于C EDCOX1(0)的存在。对谷歌的快速搜索表明它没有&#xff0c;但有人能告诉我是否存在类似的东西吗&#xff1f;在Java中&#xff1f;我正在努力使我的代码更可读。例如&#xff0c;我希望能够编写myArray[PROTEINS]&#xff0c;…

c语言中函数是怎么理解?

点击上方蓝字关注我&#xff0c;了解更多咨询1、C语言中的函数是一个可以重复使用的代码&#xff0c;用于独立完成某个功能。2、它可以接收用户传输的参数&#xff0c;也可以不接收&#xff0c;将代码段封装成函数的过程称为函数定义。如果有返回值&#xff0c;使用return语句返…

java g1 收集调优_Java性能调优:充分利用垃圾收集器

java g1 收集调优JVM背后发生了什么&#xff0c;垃圾回收如何影响Java性能&#xff1f; 性能调优世界是一个危险的地方&#xff0c;一个JVM标志失衡&#xff0c;事情很快就会变得繁琐。 因此 &#xff0c;我们决定求助于Java性能调优专家&#xff0c; 单调 JVM探查器mjprof的创…

java的构造函数详解,Java构造函数与普通函数用法详解

函数也被称为方法&#xff01;函数的作用及特点&#xff1a;1、用于定义功能&#xff0c;将功能封装。2、可以提高代码的复用性。函数注意事项&#xff1a;1、不能进行函数套用(不可以在函数内定义函数)。2、函数只有被调用才能被执行。3、基本数据类型(String、int、….)修饰的…

c语言中函数的声明和定义

点击上方蓝字关注我&#xff0c;了解更多咨询1、函数声明&#xff0c;无需实现该函数的功能。函数声明只是一个空壳&#xff0c;不会有特定的函数实现。2、函数定义&#xff0c;必须实现该函数的功能&#xff0c;要实现函数的实现。#include<stdio.h>实例//使用函数前&am…

bean注入属性_摆脱困境:将属性值注入配置Bean

bean注入属性Spring Framework对将从属性文件中找到的属性值注入到bean或Configuration类中提供了很好的支持。 但是&#xff0c;如果将单个属性值注入这些类中&#xff0c;则会遇到一些问题。 这篇博客文章指出了这些问题&#xff0c;并描述了我们如何解决它们。 让我们开始…