百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Java 9的前9大改进和功能,程序员不妨先了解

yuyutoo 2024-10-23 16:40 29 浏览 0 评论

Java 9即将推出。你准备好新版本将带来的新功能吗?在本文中,笔者对Java重要的生态系统的改变,包括新的模块系统,语言和语法的变化等,进行综合介绍。

Java 9随着发布的日期临近,程序员和开发者对其带来的新功能的兴趣逐渐升高。新Java版本的发布日期是2017年9月21日。还有不到两个月的时间!Java 9有很多变化,下面我将列出将其添加到新的Java 9中的9个重要改进。

1.新模块系统

编写大型应用程序或维护库有几个问题。随着代码库的增加,创建复杂代码的机会增加。每个用户都很难真正封装代码类成为公共API的一部分,并且在系统的不同部分之间没有明确的依赖关系的概念。

包含在新Java版本中的Jigsaw旨在解决所有这些问题。模块将由通常的类和新的模块声明文件组成。该模块描述符明确地定义了我们的模块需要什么依赖关系,以及哪些模块被外部使用。在exports子句中未提及的所有包默认情况下将封装在模块中。

一个简单的模块声明,导出一些它的包:

如果你想了解如何构建应用程序模块或熟悉Jigsaw语法和项目的更多示例,可以在此处访问快速入门指南。

http://openjdk.java.net/projects/jigsaw/quick-start

2.支持HTTP/2.0

HTTP/1.1和HTTP/2的主要区别是如何在客户端和服务器之间构建和传输数据。HTTP/1.1依赖于请求/响应周期。 HTTP/2允许服务器“push”数据:它可以发送比客户端请求更多的数据。 这使得它可以优先处理并发送对于首先加载网页至关重要的数据。Java 9将完全支持HTTP 2.0,并为Java提供了一个新的HTTP客户端,它将替代仅适用于blocking模式的HttpURLConnection - 每对请求/响应有一个线程,这增加了延迟和加载时间的网页。HTTP客户端还提供API来处理HTTP和服务器推送等HTTP功能。

两个HTTP交互示例如下所示,它们来自Java 9文档:

3.改进的Javadoc

根据我在Java开发公司Dreamix工作的经验。目前,如果想要找到一些类文档,必须在google中搜索。在Java 9中,Javadoc有几个改进,其中一个是添加一个搜索框。

如图在Java 8中

如图在Java 9中

4.Stream改进

Stream API是Java 8中的游戏更改功能之一,Java 9已经变得更加出色。 现在,你可以创建Stream from Optional。Stream接口还添加了四种新方法:iterate,dropWhile,takeWhile,ofNullable。

DropWhile丢弃Stream的第一个项目,直到满足条件。

TakeWhile处理项目直到满足条件。

Iterate允许使用Stream为for循环写入适当的替换。它需要Stream的初始值,定义何时停止迭代的条件和生成下一个元素的步骤函数。

OfNullable作为名称建议让你从对象创建Stream,而不需要检查null。它返回一个包含单个元素的顺序Stream,如果非空,则返回一个空的Stream。

5.使用新的工厂方法更容易地初始化Collections

目前,如果要创建预定义值列表,您必须进行大量输入:

将来,通过新添加的工厂方法,常用Collections的初始化将会更加容易。接口中的静态方法使其成为可能,增强了列表,集合和映射接口,以便使用多达10个元素创建Collections的方法。 生成的对象是针对性能进行了优化的不可变Collections。

在创建后向这些Collections添加项将导致“UnsupportedOperationException”。

上面的代码看上去更加美观:

这些是一些添加的方法:

6.接口中的私有方法

Java 8给了我们界面中的默认方法。这些方法具有body和给界面的行为,不仅是空的签名。 如果你有两种公共方法几乎相同的话,你会怎么做? 很可能将尝试以私有方式移动通用代码,并从公共方法中调用它们。但是在类似的情况下,你会在接口中使用两种默认方法,而不是类中的两种公共方法吗?

在Java 9中,可以使用完全相同的方法,并具有通用逻辑的私有方法,此方法将不会成为你API的一部分。

7.语言和语法的改进

现在用资源语句编写try将更容易。 以前,执行后必须关闭的所有资源必须在try子句中初始化,如下例所示:

从Java 9开始,我们可以在try子句中使用最终和有效的最终资源:

从Java 9变量名称不能由单个下划线(“_”)组成。 可以在my_var中的变量名中写下划线,但是单独的下划线将导致错误。背后的原因是下划线将被保留以供将来在语言中使用。

我们将能够与匿名内部类共同使用钻石操作符(diamond operator):

8.增强处理API

到目前为止,管理和控制操作系统进程的能力有限。 此外,你编写的执行此类交互的代码取决于操作系统。

新版本将扩展与操作系统进行交互的能力。将添加新的方法来处理PID管理,进程名称和状态,子进程管理等等。

检索当前进程PID并在所有操作系统上运行的示例代码将如下所示:

9.Java REPL = Jshell

最后但并非最不重要的Java9将包括项目Kulla(http://openjdk.java.net/projects/kulla/)中的Read Evaluate Print Loop(REPL)工具。这个命令行工具被称为jshell,如果你想自己编写几行代码来测试一下,这将是完美的工具。

只需执行简单的命令,就不需要使用main方法的新类。

我们在新版本中看不到什么?

有几个好的功能从即将发布的版本中删除。但是,可以在Java 10中等待。

一个标准化和轻量级的JSON API被许多java开发人员所青睐。但是由于资金问题无法在Java 9中见到,但并不会削减掉。Java平台首席架构师Mark Reinhold在JDK 9邮件列中说:“这个JEP将是平台上的一个有用的补充,但是在计划中,它并不像Oracle资助的其他功能那么重要,可能会重新考虑JDK 10或更高版本中实现。 ”

相关推荐

Python操作Word文档神器:python-docx库从入门到精通

Python操作Word文档神器:python-docx库从入门到精通动动小手,点击关注...

Python 函数调用从入门到精通:超详细定义解析与实战指南 附案例

一、函数基础:定义与调用的核心逻辑定义:函数是将重复或相关的代码块封装成可复用的单元,通过函数名和参数实现特定功能。它是Python模块化编程的基础,能提高代码复用性和可读性。定义语法:...

等这么长时间Python背记手册终于来了,入门到精通(视频400集)

本文毫无套路!真诚分享!前言:无论是学习任何一门语言,基础知识一定要扎实,基础功非常的重要,找一个有丰富编程经验的老师或者师兄带着你会少走很多弯路,你的进步速度也会快很多,无论我们学习的目的是什么,...

图解Python编程:从入门到精通系列教程(附全套速查表)

引言本系列教程展开讲解Python编程语言,Python是一门开源免费、通用型的脚本编程语言,它上手简单,功能强大,它也是互联网最热门的编程语言之一。Python生态丰富,库(模块)极其丰富,这使...

Python入门教程(非常详细)从零基础入门到精通,看完这一篇就够

本书是Python经典实例解析,采用基于实例的方法编写,每个实例都会解决具体的问题和难题。主要内容有:数字、字符串和元组,语句与语法,函数定义,列表、集、字典,用户输入和输出等内置数据结构,类和对象,...

Python函数全解析:从入门到精通,一文搞定!

1.为什么要用函数?函数的作用:封装代码,提高复用性,减少重复,提高可读性。...

Python中的单例模式:从入门到精通

Python中的单例模式:从入门到精通引言单例模式是一种常用的软件设计模式,它保证了一个类只有一个实例,并提供一个全局访问点。这种模式通常用于那些需要频繁创建和销毁的对象,比如日志对象、线程池、缓存等...

【Python王者归来】手把手教你,Python从入门到精通!

用800个程序实例、5万行代码手把手教你,Python从入门到精通!...

Python从零基础入门到精通:一个月就够了

如果想从零基础到入门,能够全职学习(自学),那么一个月足够了。...

Python 从入门到精通:一个月就够了

要知道,一个月是一段很长的时间。如果每天坚持用6-7小时来做一件事,你会有意想不到的收获。作为初学者,第一个月的月目标应该是这样的:熟悉基本概念(变量,条件,列表,循环,函数)练习超过30个编...

Python零基础到精通,这8个入门技巧让你少走弯路,7天速通编程!

Python学习就像玩积木,从最基础的块开始,一步步搭建出复杂的作品。我记得刚开始学Python时也是一头雾水,走了不少弯路。现在回头看,其实掌握几个核心概念,就能快速入门这门编程语言。来聊聊怎么用最...

神仙级python入门教程(非常详细),从0到精通,从看这篇开始!

python入门虽然简单,很多新手依然卡在基础安装阶段,大部分教程对一些基础内容都是一带而过,好多新手朋友,对一些基础知识常常一知半解,需要在网上查询很久。...

Python类从入门到精通,一篇就够!

一、Python类是什么?大家在生活中应该都见过汽车吧,每一辆真实存在、能在路上跑的汽车,都可以看作是一个“对象”。那这些汽车是怎么生产出来的呢?其实,在生产之前,汽车公司都会先设计一个详细的蓝图...

学习Python从入门到精通:30天足够了,这才是python基础的天花板

当年2w买的全套python教程用不着了,现在送给有缘人,不要钱,一个月教你从入门到精通1、本套视频共487集,本套视频共分4季...

30天Python 入门到精通(3天学会python)

以下是一个为期30天的Python入门到精通学习课程,专为零基础新手设计。课程从基础语法开始,逐步深入到面向对象编程、数据处理,最后实现运行简单的大语言模型(如基于HuggingFace...

取消回复欢迎 发表评论: