java基础(十二)java9新特性

目录

一、jdk和jre目录结构的改变

1.1 jdk8的目录结构

1.2 jdk9的目录结构

二、模块化系统: Jigsaw ——> Modularity

三、jshell命令


 

  • ➢模块化系统
  • ➢jShell命令
  • ➢多版本兼容jar包
  • ➢接口的私有方法
  • ➢钻石操作符的使用升级
  • ➢语法改进: try语句
  • ➢String存储结构变更
  • ➢便利的集合特性: of()
  • ➢增强的Stream API
  • ➢全新的HTTP客户端API
  • ➢Deprecated的相关API
  • ➢javadoc的HTML 5支持
  • ➢java的动态编译器

 

 

一、jdk和jre目录结构的改变
 

1.1 jdk8的目录结构

 

 

1.2 jdk9的目录结构

 

 

 

 

二、模块化系统: Jigsaw ——> Modularity

模块(module)的概念,其实就是package外再裹一层, 不声明默认就是隐藏。因此,模块化使得代码组织上更安全,因为它可以指定哪些部分可以暴露,哪些部分隐藏。

实现目标

 

  • ➢模块化的主要目的在于减少内存的开销
  • ➢只须必要模块,而非全部jdk模块,可简化各种类库和大型应用的开发和维护
  • ➢改进Java SE平台,使其可以适应不同大小的计算设备
  • ➢改进其安全性,可维护性,提高性能

模块将由通常的类和新的模块声明文件(module-info.java) 组成。该文件是位于java代码结构的顶层,该模块描述符明确地定义了我们的模块需要什么依赖关系,以及哪些模块被外部使用。在exports 子句中未提及的所有包默认情况下将封装在模块中,不能在外部使用。

 

 

 

 

三、jshell命令

产生背景

Python和Scala之类的语言早就有交互式编程环境REPL (read - evaluate - print -loop)了,以交互式的方式对语句和表达式进行求值。开发者只需要输入- -些代码,就可以在编译前获得对程序的反馈。而之前的Java版本要想执行代码,必须创建文件、声明类、提供测试方法方可实现。

设计理念

  • 即写即得、快速运行

实现目标

  • ➢Java9中终于拥有了REPL工具: jShell。 让Java可以像脚本语言一样运行,从控制台启动jShel,利用jShell在没有创建类的情况下直接声明变量,计算表达式,执行语句。即开发时可以在命令行里直接运行Java的代码,而无需创建Java文件,无需跟人解释”public static void main(String[] args)”这句废话。
  • ➢jShelI也可以从文件中加载语句或者将语句保存到文件中。
  • ➢jShell也可以是tab键进行自动补全和自动添加分号。

 

 


2021 06 21 补充

name = Object.requireNonNullElse(n, "unknown");

name = Object.requireNonNull(n, "The name cannot be null");

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值