Java新特性

一,JDK9新特性

1,模块化系统

模块化系统是jdk9的一个新特性。

在jdk1-8中JVM启动的时候都会加载rt.jar,这样会导致Java运行环境的膨胀与臃肿,代码库越来越大,创建复杂,都会阻碍Java开发和运行效率的提升,还很难对代码进行真正的封装。

作用:

  • 模块化的主要目的在于减少内存的开销

  • 只须必要模块,而非全部jdk模块,可简化各种类库和大型应用的开发和维护

  • 改进 Java SE 平台,使其可以适应不同大小的计算设备

  • 改进其安全性,可维护性,提高性能

2,JSell命令

开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。而之前的Java版本要想执行代码,必须创建文件、声明类、提供测试方法方可实现。

 3,接口私有方法

接口都有默认的静态常量和抽象方法。在jdk8时新增了静态方法和默认方法。jdk9时接口可以有私有方法了。

4,钻石操作修饰符使用升级

在jdk8中,如下代码是报错的

<>必须写类型。

而在jdk9中,上述代码就不报错,这是对<>钻石运算符的一个升级。

 5,try语句

Java 8 中,可以实现资源的自动关闭,但是要求执行后必须关闭的所有资源必须在try子句中初始化,否则编译不通过。如下例所示:

Java 9 中,用资源语句编写try将更容易,我们可以在try子句中使用已经初始化过的资源,此时的资源是final的

6,spring存储结构变更

jdk8之前,String 是用 char[] 来存储的,jdk9改成了 byte[] 加上编码标记,节约了一些空间。

7,集合特性of

创建只读集合(即长度,内容都不可修改)。

8,InputStream增强

jdk9新增了方法transferTo方法,可以将数据直接传输到OutputStream。

9,增强了Stream API

二,JDK10新特性

1,局部变量类型推断

Java编译器将根据变量声明的右侧表达式的类型自动推断变量类型。

2,新增不可变集合方法

copeof()方法,可以将普通的集合变为长度不可变的集合(不可增加或删除集合元素,但可以修改集合元素)。

三,JDK11新特性

1,增加ZGC垃圾回收器

2,Optional加强

3,新增HTTP协议客户端API

四,JDK14新特性

1,改进空指针异常报错信息

JDK14以后的空指针异常报错信息中可以精确的看到空指针的位置。

五,JDK15新特性

1,文本块

jdk8之前spring字符串类型声明时如果要换行需要用+拼接,jdk9之后就不需要用+拼接了

 六,JDK16新特性

1,switch的升级

  • 比如case标签之间的默认控制行为

  • case块中的默认范围

  • 无意义的break语句。

 jdk16以前switch结构用法:

public static void main(String[] args) {
    int level = new Random().nextInt(4);
    String strLevel;
    switch (level){
        case 1:
            strLevel = "优秀";
            break;
        case 2:
            strLevel = "良好";
            break;
        default:
            strLevel = "一般";
            break;
    }
    System.out.println(strLevel);
}

 jdk16对应用法

public static void main(String[] args) {
    int level = new Random().nextInt(4);
    String strLevel;
    switch (level){
        case 1 -> strLevel="优秀";
        case 2 -> strLevel="良好";
        default -> strLevel="一般";
    }
    System.out.println(strLevel);
}

 衍生出来的用法

public static void main(String[] args) {
    int level = new Random().nextInt(4);
    String strLevel = switch (level){
        case 1-> "优秀";
        case 2-> "良好";
        default -> "一般";
    };
    System.out.println(strLevel);
}

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值