Java 9的前9大改进和功能,程序员不妨先了解
yuyutoo 2024-10-23 16:40 5 浏览 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或更高版本中实现。 ”
相关推荐
- YAML配置文件简介及使用(yaml 配置)
-
简介YAML是"YAMLAin'taMarkupLanguage"(YAML不是一种标记语言)的缩写。相比JSON格式的方便。...
- 教你如何解决最常见的58种网络故障排除方法
-
1.故障现象:网络适配器(网卡)设置与计算机资源有冲突。分析、排除:通过调整网卡资源中的IRQ和I/O值来避开与计算机其它资源的冲突。有些情况还需要通过设置主板的跳线来调整与其它资源的冲突。2.故障现...
- 一分钟带你了解服务器网卡(服务器网卡怎么用)
-
今天小编和大家聊一下服务器的网卡。什么是网卡?简单说网卡就是计算机与局域网互连的设备。计算机主要通过网卡接入网络。网卡又称为网络适配器或网络接口卡NIC(NetworkinterfaceCard)...
- linux文件之ssh配置文件的含义与作用
-
ssh远程登录命令是操作系统(包括linux和window系统)下常用的操作命令,可以帮助用户,远程登录服务器系统,查看,操作系统相关信息。linux系统对于ssh命令有专门保存其相关配置的目录和文件...
- Cilium 官方文档翻译 - IPAM(二)Kubernetes Host模式
-
KubernetesHostScopeciliumIPAM的kuberneteshost-scope模式通过选项ipam:kubernetes开启,将集群IP地址分配委托给每个独立的节点,并...
- 域名劫持跳转,域名劫持跳转的解决办法只需5步
-
简单来说,域名劫持就是把原本准备访问某网站的用户,在不知不觉中,劫持到仿冒的网站上,例如用户准备访问某家知名品牌的网上商店,黑客就可以通过域名劫持的手段,把其带到假的网上商店,同时收集用户的ID信息和...
- Linux 磁盘和文件系统管理(linux磁盘管理fdisk)
-
1检测并确认新硬盘...
- windows host文件怎么恢复?局域网访问全靠这些!
-
windowshost文件怎么恢复?windowshost文件是常用网址域名及其相应IP地址建立一个关联文件,通过这个host文件配置域名和IP的映射关系,以提高域名解析的速度,方便局域网用户使用...
- Nginx配置文件详解与优化建议(nginx 配置详解)
-
1、概述今天来详解一下Nginx的配置文件,以及给出一些配置建议,希望能对大家有所帮助。...
- Mac电脑hosts文件锁定,如何修改hosts文件权限
-
有时候我们需要修改hosts文件,但是网上很多教程都行不通,使用sudo命令也不行。其实有一个很简单的方法。打开终端命令行,使用如下命令即可:sudochflags-hvnoschg/etc/...
- windows电脑如何修改hosts文件?(windows 修改hosts文件)
-
先来简单说下电脑host的作用hosts文件的作用:hosts文件是一个用于储存计算机网络中各节点信息的计算机文件;作用是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中...
- Vigilante恶意软件行为怪异:修改Hosts文件以阻止受害者访问盗版网站
-
Sophos刚刚报道了一款名叫Vigilante的恶意软件,但其行为却让许多受害者感到不解。与其它专注于偷密码、搞破坏、或勒索赎金的恶意软件不同,Vigilante会通过修改Hosts文件...
- hosts文件无法修改几种现象和解决方法
-
第一种、hosts文件修改完不是直接保存而是弹出另存为窗口解决:1、右击hosts文件——属性——把“只读”前面勾去掉。第二种、打开hosts文件时提示“你没有权限打开该文件,请向文件的所有者或管理员...
- hosts文件位置在哪里,教你hosts文件位置在哪里
-
Hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联"数据库",当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的I...
你 发表评论:
欢迎- 一周热门
-
-
前端面试:iframe 的优缺点? iframe有那些缺点
-
带斜线的表头制作好了,如何填充内容?这几种方法你更喜欢哪个?
-
漫学笔记之PHP.ini常用的配置信息
-
其实模版网站在开发工作中很重要,推荐几个参考站给大家
-
推荐7个模板代码和其他游戏源码下载的网址
-
[干货] JAVA - JVM - 2 内存两分 [干货]+java+-+jvm+-+2+内存两分吗
-
正在学习使用python搭建自动化测试框架?这个系统包你可能会用到
-
织梦(Dedecms)建站教程 织梦建站详细步骤
-
2024PHP在线客服系统源码+完全开源 带详细搭建教程
-
【开源分享】2024在线客服系统PHP源码(安装教程+全新UI)
-
- 最近发表
- 标签列表
-
- mybatis plus (70)
- scheduledtask (71)
- css滚动条 (60)
- java学生成绩管理系统 (59)
- 结构体数组 (69)
- databasemetadata (64)
- javastatic (68)
- jsp实用教程 (53)
- fontawesome (57)
- widget开发 (57)
- vb net教程 (62)
- hibernate 教程 (63)
- case语句 (57)
- svn连接 (74)
- directoryindex (69)
- session timeout (58)
- textbox换行 (67)
- extension_dir (64)
- linearlayout (58)
- vba高级教程 (75)
- iframe用法 (58)
- sqlparameter (59)
- trim函数 (59)
- flex布局 (63)
- contextloaderlistener (56)