JDK 8 新特性学习(一) 概览

xiaoxiao2021-02-27  302

JDK 8 新特性学习(一) 概览

JAVA 8是一个重要的版本, 这篇文章总结了其中新增的特性和增强的地方。

Java Programming Language Lambda表达式 Lambda表达式是一个新的语言特性。它能够让你把function当成方法的参数,把代码看成数据一样使用。Lambda表达式让你的单方法接口(也称为功能性接口)更加简洁Method reference 提供已有名字的method更加容易阅读的lambda表达方式默认方法可以将新功能添加到库的接口,并确保与旧版本的这些接口编写的代码的二进制兼容性重复注释使得可以将相同的注释类型多次应用于相同的声明或类型使用对类型注解的支持,增强了通过静态分析工具发现错误的能力。原先只能在运行时发现的问题可以提前在编译的时候被排查出来。Java 8 本身虽然没有自带类型检测的框架,但可以通过使用 Checker Framework 这样的第三方工具,自动检查和确认软件的缺陷,提高生产效率。增强类型推断。举的例子是:在8之前的很多地方是没有类型推断的,现在是已经可以了。方法参数的反射. 可以获取具体parameter对象,然后获取name之类的.集合类 新增一个java.util.stream的包,提供流式的api来支持对集合元素的函数编程。 流程式的api整合到了集合类的api, 可以支持批量的集合操作, 像是次序或者并行map-reduce这样形式的转换。为hashmap的key冲突提高性能安全性方面 支持更强的基于密码的加密算法。在客户端,TLS1.1 和 TLS1.2 被设为默认启动。并且可以通过新的系统属性包 jdk.tls.client.protocols 来对它进行配置。Keystore 的增强支持安全的随机数发生器。JSSE(Java(TM) Secure Socket Extension)服务器端开始支持 SSL/TLS 服务器名字识别 SNI(Server Name Indication)扩展安全性比较差的加密方法被默认禁用国际化 unicode增强,包括支持unicode 6.2采用unicode CLDR Data和java.local.providers系统属性(其实不懂)新的Calendar和Locale API可以把自定义的resource设置成扩展resource日期时间包 一个新的包可以提供比较强力的api(应该是joda-time)IO和NIO包 提供了基于Solaris的SelectorProvider接口实现。减小jre/lib/charsets.jar包的大小提高java.lang.String(byte[], *)这个构造函数和java.lang.String.getBytes()方法的性能java.lang包和java.util包 并行数组排序标准的Base64加密解密无符号算术支持JDBC jdbc-odbc的桥接功能已经移除jdbc4.2的新特性网络 增加java.net.URLPermission在java.net.HttpURLConnection中,如果安装了安全管理器,那么打开连接的时候回进行权限验证。并发 java.util.concurrent新增了class和interfacejava.util.concurrent.ConcurrentHashMap支持新的基于stream的api聚合和lambda表达式java.util.concurrent.atomic新增了一些类,支持可扩展更新的变量java.util.concurrent.ForkJoinPool新增了一些类,支持一个普通的线程池新增java.util.concurrent.locks.StampedLock类,用来提供一个使用三种模型来控制读写的锁。

原文内容

转载请注明原文地址: https://www.6miu.com/read-5849.html

最新回复(0)