从Java 8到 Java 17–Java 10
本文最后更新于 1199 天前,其中的信息可能已经有所发展或是发生改变。

从Java 10 开始,Java的迭代周期缩短为半年,半年发布一个版本。Java10它号称有109项新特性,包含12个JEP。

特性列表

  • 局部变量的类型推断 var关键字
  • GC改进和内存管理 并行全垃圾回收器 G1
  • 垃圾回收器接口
  • 线程-局部变量管控
  • 合并 JDK 多个代码仓库到一个单独的储存库中
  • 新增API:ByteArrayOutputStream
  • 新增API:List、Map、Set
  • 新增API:java.util.Properties
  • 新增API: Collectors收集器
  • 其它特性

1.局部变量的类型推断 var关键字

这个新功能将为Java增加一些语法糖 – 简化它并改善开发者体验。新的语法将减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺。

这可能是Java10给开发者带来的最大的一个新特性。下面主要看例子:

        //在Java 6时初始化一个Map需要我们这样来声明:
        Map<String, String> map_java6 = new HashMap<String,String>();
        //事实上泛型方法的参数可以通过上下文推导出来,所以在Java 7 中简化为:
        Map<String, String> map_java7 = new HashMap<>();
        //到了Java 10 进一步升华了类型推断,我们看一个例子:
        var map_java10 = Map.of("hello","world");
        System.out.println("map_java10:"+map_java10);

注意:下面几点使用限制

  1. 局部变量初始化
  2. for循环内部索引变量
  3. 传统的for循环声明变量
        //局部变量初始化
        var list = List.of("hello,world!");
        //for循环内部索引变量
        for (var s : list) {
            System.out.println(s);
        }
        //传统的for循环声明变量
        for (var i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

下面这几种情况,都是不能使用var

  1. 方法参数
  2. 全局变量
public static var list = new ArrayList<String>(); //编译报错
public static List<String> ll = new ArrayList<>(); //正常编译通过

2.GC改进和内存管理 并行全垃圾回收器 G1

JDK 10中有2个JEP专门用于改进当前的垃圾收集元素。
Java 10的第二个JEP是针对G1的并行完全GC(JEP 307),其重点在于通过完全GC并行来改善G1最坏情况的等待时间。G1是Java 9中的默认GC,并且此JEP的目标是使G1平行。

3.新增API:List、Map、Set

这3个接口都增加了一个新的静态方法,copyOf(Collection)。这些函数按照其迭代顺序返回一个不可修改的列表、映射或包含给定集合的元素的集合。

复制一个集合为不可变集合:

        //局部变量初始化
        var list = List.of("hello,world!");

        // 复制list
        List<String> copyList  = List.copyOf(list);
        System.out.println("copyList:"+copyList);
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇