zoukankan      html  css  js  c++  java
  • (三)JDK版本区别

    重点关注:

    接口与类

    一个类只能继承一个类,⽤extends关键字;一个雷可以实现多个接口 ,用implements关键字;接口可以继承多个接口,⽤extends关键字,接口中只能有抽象方法;接口方法都是公共public;

    JDK1.8:接口中可以有公共静态方法static和默认方法 default,但方法必须有方法体;默认方法可以被实现类覆盖;

    JDK1.9:接口中可以有私方法private ,但方法也必须有方法体;仅在该接口内被调用或访问;

    异常捕获try-catch-finally

    资源在try中被使用,在finally中被释放

    JDK1.8:资源可以在try()中定义实例化,不需要在finally中进行释放;

    JDK1.9:资源可以提前实例方,在try()中声明为常量,多个以“;”隔开,不需要在finally中进行释放;

    String、AbstractStringBuilder 数据结构

    JDK1.8及以前:都是 char[]字符数组实现,final class 不允许被继承;StringBuffer的append/length/setlength/charat方法等都加了synchronized,线程安全;

    JDK1.9:字节数组final byte[]数组实现,原因:char两个字节一个字符,但大多数字符串都是拉丁字符,一个字节其实就足够了;另外提供了编码规则编码域latin-1/utf-16;

    主要区别:

    JDK1.8:lambda表达式:(parameters) ->{ statements; } 比如: foundInfoEntityList.forEach(e->{ foundInfoMap.put(e.getId(), e);});

        函数式接口:为了引申出lambda表达式,其只有一个抽象方法的接口,其实现类的实例化方法可以缩减为lambda表达式 比如: execute(() -> System.out.println("使用lambda"));

        方法引用: 以“::”跟方法名来实现对方法的引用;比如 mybatis plus 条件构造器queryWrapper queryWrapper.lambda().ge(FoundInfoDO::getLastUpdatedAt, startUpdDate);

        集合流Stream处理:比如 集合名.stream() .filter()或者.sorted()或者.sum()或者.forEach();

        增加了localDate API:原来的date可读性差,SimpleDateFormat线程非安全setTime时多线程易错乱;LocalDateTime等于LocalDate+LocalTime,DateTimeFormatter转单instance实现;

        Optional 类空值处理:Null不应该作为返回值或用于业务逻辑判断,ifPresent()非空判断;orElse()非空返原值否则传入值;进行一些逻辑处理;

    JDK1.9:模块化:之前是rt.jar太大,且通过包来区分和隔离类,但不能控制公开类方法全局可见性,包引包的冲突重复缺失问题;jre分解到新jmod下90个包,加载引入方式选择性使用;

        JSHEll:命令行可以直接使用的shell命令;

        多版本兼容:在版本目录下级封装各种包,方便引入不同版本jar使用;

        改进Stream API增加方法:dropWhile, takeWhile, ofNullable

        HTTP/2:新的 HttpClient API 实现对数据和流的服务;

    JDK1.10:局部变量var,但是方法参数和全局变量不能使用;

        并行full Gc的G1:并行化标记-清除-压缩算法,

    JDK1.11:

  • 相关阅读:
    入门教程: JS认证和WebAPI
    ASP.NET Core 之 Identity 入门(二)
    在Visual Studio 2017中使用Asp.Net Core构建Angular4应用程序
    .Net Core+Angular Cli/Angular4开发环境搭建教程
    简单易用的.NET免费开源RabbitMQ操作组件EasyNetQ解析
    Razor
    一个简易的反射类库NMSReflector
    发布 Ionic iOS 企业级应用
    AngularJS中的Provider们:Service和Factory等的区别
    Linux企业运维人员必备150个命令汇总
  • 原文地址:https://www.cnblogs.com/huasky/p/14735395.html
Copyright © 2011-2022 走看看