zoukankan      html  css  js  c++  java
  • Java10新特性

    局部变量的类型推断

    这个功能减少与编写Java相关的冗长度,同时保持对静态类型安全性的承诺

    使用举例

    public static void main(String[] args) {
            // 使用var作为变量类型,通过右侧的泛型推断类型,在编译阶段自动将var转换为推断的类型
            var list = new ArrayList<String>();
            list.add("hello,world!");
            System.out.println(list);
    }
    

    使用场景

    public static void main(String[] args) {
            //局部变量初始化
            var list = new ArrayList<String>();
            //for循环内部索引变量
            for (var s : list) {
                System.out.println(s);
            }
            //传统的for循环声明变量
            for (var i = 0; i < list.size(); i++) {
                System.out.println(i);
    }
    
    

    禁用场景

    public void test2() {
            //1.局部变量不赋值,就不能实现类型推断
    //        var num ;
    
            //2.lambda表示式中,左边的函数式接口不能声明为var
    //        Supplier<Double> sup = () -> Math.random();
    
    //        var sup = () -> Math.random();
    
            //3.方法引用中,左边的函数式接口不能声明为var
    //        Consumer<String> con = System.out::println;
    
    //        var con = System.out::println;
    
            //4.数组的静态初始化中,注意如下的情况也不可以
            int[] arr = {1, 2, 3, 4};
    //        var arr = {1,2,3,4};
    
            // 5:没有初始化的局部变量声明
    //        var s = null;
    
    
            // 6:catch块
    //        try{
    //
    //        }catch(var e){
    //            e.printStackTrace();
    //        }
    }
    

    其他

    JEP296,将原来用 Mercurial 管理的众多 JDK 仓库代码,合并到一个仓库中,简化开发和管理过程

    JEP304,统一的垃圾回收接口

    JEP307,G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟

    JEP310,应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间

    JEP312,ThreadLocal 握手交互。在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优 化可以只停止单个线程,而不是停全部线程或一个都不停

    JEP313,移除 JDK 中附带的 javah 工具。可以使用 javac -h 代替

    JEP314,使用附加的 Unicode 语言标记扩展

    JEP317,能将堆内存占用分配给用户指定的备用内存设备

    JEP317,使用 Graal 基于 Java 的编译器,可以预先把 Java 代码编译成本地代码来提升效能

    JEP318,在 OpenJDK 中提供一组默认的根证书颁发机构证书。开源目前 Oracle 提供的的 Java SE 的根证 书,这样 OpenJDK 对开发人员使用起来更方便

    JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为 $FEATURE.$INTERIM.$UPDATE.$PATCH,分别是大版本,中间版本,升级包和补丁版本

  • 相关阅读:
    centos7 docker安装awvs
    screen命令简介-实现linux多窗口
    linux命令重命名
    iptables防止nmap扫描
    cobal strike could not start listener address already in use (bind failed)
    docker简介及安装
    「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver
    「Sqlserver」数据分析师有理由爱Sqlserver之一-好用的插件工具推荐
    「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招
    「数据分析」Sqlserver中的窗口函数的精彩应用之数据差距与数据岛(含答案)
  • 原文地址:https://www.cnblogs.com/ding-dang/p/13569676.html
Copyright © 2011-2022 走看看