特产网站怎么做,政务服务网登录入口,中卫建设厅网站,绵阳top唯艺网站建设java工程师的终极书单这篇文章将针对即将到来的Java 9版本进行更新#xff0c;新增功能 #xff08; 最新更新#xff1a;2014年 9月9日 #xff09; OpenJDK开发正在加快速度#xff1a;2014年3月Java 8发布后#xff0c;我们预计将进入2年的发布周期。 据报道#xf… java工程师的终极书单 这篇文章将针对即将到来的Java 9版本进行更新新增功能 最新更新2014年 9月9日 OpenJDK开发正在加快速度2014年3月Java 8发布后我们预计将进入2年的发布周期。 据报道Java 9将于2016年发布针对该版本的JEPJDK增强提案的早期清单已经发布。 此外一些JSRJava规范请求已经在开发中我们还添加了一些可能包含的其他功能的提示。 旗舰功能包括Jigsaw项目显着的性能改进和期待已久的API包括流程API更新作为java.util一部分的JSON和一个资金处理API。 对于那些想掌握最新技术的人 这里已经提供了 JDK 9早期访问版本。 在这篇文章中我们将继续围绕Java 9的主要新功能及其最新内容进行更新。 因此请继续关注其他更新 目录 [已接受]拼图项目–模块化源代码 [已接受] Process API更新 [已接受]轻量级JSON API [已接受]货币和货币API [已接受]改进的竞争锁定 [已接受]分段代码缓存 [已接受]智能Java编译–第二阶段 [预期] HTTP 2客户端 [预期] Java中的REPL 新功能从何而来 接受的功能 1.项目拼图–模块化源代码 Jigsaw项目的目标是使Java模块化并将JRE分解为可互操作的组件这是Java 9最受关注的功能之一。此JEP是迈向Jigsaw的4个步骤中的第一个不会改变JRE的实际结构。 JDK。 此步骤的目的是将JDK源代码重组为模块增强构建系统以编译模块并在构建时强制执行模块边界。 该项目原本打算用于Java 8但此后被推迟并重新定位到Java 9。 完成后将允许创建按比例缩小的运行时Jarrt.jar以针对项目实际需要的组件进行自定义。 JDK 7和JDK 8 rt.jar具有大约20,000个类它们属于JDK即使其中的许多类并未真正用于特定环境中尽管Java 8 紧凑型概要文件功能中包含部分解决方案。 其背后的动机是使Java易于扩展到小型计算设备物联网提高安全性和性能并使开发人员更轻松地构建和维护库。 关于JEP 201的更多信息 2.处理API更新 到目前为止使用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(Your pid is Process.getCurrentPid()); 此更新将扩展Java与操作系统进行交互的能力处理PID进程名称和状态的新直接方法以及枚举JVM和进程等的能力。 关于JEP 102的更多信息 3.轻量级JSON API 当前有一些替代方法可用于处理Java中的JSON此API的独特之处在于它将成为语言的一部分是轻量级的并且将使用Java 8的新功能。它将直接通过java.util传递与JSR 353不同使用外部软件包或其他替代方法 。 **代码样本即将推出 关于JEP 198的更多信息 4.货币和货币API 在Java 8中引入了新的Date and Time API之后Java 9带来了一个新的官方API用于表示传输和执行Money和Currency的综合计算。 要了解有关该项目的更多信息可以在Github上访问JavaMoney。 代码和用法示例已在此处提供。 以下是一些要点 Money amt1 Money.of(10.1234556123456789, USD); // Money is a BigDecimal
FastMoney amt2 FastMoney.of(123456789, USD); // FastMoney is up to 5 decimal places
Money total amt1.add(amt2); 新的货币类型Money和FastMoney MonetaryAmountFormat germanFormat MonetaryFormats.getAmountFormat(
Locale.GERMANY);System.out.println(germanFormat.format(monetaryAmount)); // 1.202,12 USD 根据不同国家格式化货币 关于JSR 354的更多信息 5.改善竞争性锁定 锁争用是许多多线程Java应用程序的性能瓶颈。 增强建议旨在改善Java对象监视器的性能这些性能由不同的基准测试得出。 这些测试之一是Volano 。 它模拟具有大量线程数和客户端连接的聊天服务器其中许多服务器试图访问相同的资源并模拟重型现实应用程序。 这些压力测试将JVM推向极限并尝试确定它们可以实现的最大吞吐量通常以每秒消息数计。 该JEP雄心勃勃的成功指标是对22个不同基准的重大改进。 如果成功这些性能改进将在Java 9中推出。 关于JEP 143的更多信息 6.分段代码缓存 Java 9的另一个性能改进来自JIT编译器角度。 快速执行某些代码区时VM会将其编译为本地代码并将其存储在代码缓存中。 此更新旨在将代码缓存分段到已编译代码的不同区域以提高编译器的性能。 而不是单个区域代码缓存将根据代码在缓存中的生命周期分为三部分 永久保留在缓存中的代码JVM内部/非方法代码 寿命短配置文件代码特定于某些条件 潜在的长寿命非配置文件代码 分割将允许进行一些性能改进。 例如方法清除程序将能够跳过非方法代码并更快地执行。 关于JEP 197的更多信息 7. Smart Java编译第二阶段 Smart Java编译工具或sjavac最初是在JEP 139上开发的 目的是通过使javac编译器在所有内核上运行来提高JDK的构建速度。 借助JEP 199它进入了第二阶段将在第二阶段进行改进和推广以便默认情况下可以使用它并构建除JDK之外的其他项目。 关于JEP 199的更多信息 还有什么期望 8. HTTP 2客户端 HTTP 2.0尚未作为标准发布但是它将很快提交最终审查并且有望在Java 9发行之前完成。JEP110将为Java定义并实现一个新的HTTP客户端它将取代HttpURLConnection并实现HTTP 2.0和websockets。 它尚未作为公认的JEP发布但针对Java 9我们希望将其包含在内。 目前基于Google的SPDY算法HTTP 2.0 RFC正式发布日期为2015年2月。 SPDY在HTTP 1.1上已显示出极大的速度改进范围在11.81到47.7之间并且其实现已存在于大多数现代浏览器中。 关于JEP 110的更多信息 9. Kulla项目– Java中的REPL 最近宣布的Java 9不太可能出现但可能会在2015年4月确定目标集成日期使其按时交付。如今没有Java本地化方式来实现REPLRead-Eval-Print-Loop。 意思是如果您想运行几行Java来快速地自行检查它们则必须将它们全部包装在单独的项目或方法中。 流行的IDE以及其他解决方案如Java REPL都有REPL附加组件但到目前为止尚无官方方法可以这样做– Project Kulla可能是答案。 有关库拉计划的更多信息 奖励新功能从何而来 JEP和JSR通常不会突然出现这是将它们结合在一起的结构 组 –在广泛的主题或特定的代码主体方面具有共同利益的个人和组织。 安全网络Swing和HotSpot是一些示例。 项目 –产生大量代码文档或其他努力的工作。 必须由至少一个团体赞助。 最近的示例是Lambda项目Jigsaw项目和Sumatra项目。 JDK增强提案 JEP –当需要进一步探索时允许在JCP之前或与之并行地非正式地推广新规范。 接受的JEP成为JDK路线图的一部分并分配一个版本号。 Java规范请求 JSR –该功能的实际规范在此阶段发生可以通过组/项目JEP或来自单个JCPJava社区过程成员来进行。 通常会为每个Java版本打开一个伞形的JSR而Java 9尚未实现。社区的各个成员也可以提出新的Java规范请求。 翻译自: https://www.javacodegeeks.com/2014/09/java-9-the-ultimate-feature-list.htmljava工程师的终极书单