java se8的新特性有哪些
java se8新特性如下:
Java Programming Language
1、lambda expressions,一个新的语言特性,它可以将功能作为方法的参数or代码作为数据,它使你表达单一方法接口的实例更加简洁。
2、对已经有方法名的方法提供一个更加可读的lambda expressions为方法的引用。
3、默认方法使新的功能添加到库的接口,确保与旧版本的接口编写的代码的二进制兼容
4、重复注解提供不止一次应用同样的注解类型
5、类型注解提供应用注解的能力,任何一个类型的使用,不仅在声明上使用。用于一个可插拔式的系统,此功能提高你代码的类型检查。
6、提高类型的推断
7、方法参数的反射
Collections
1、新的java.util.stream包,提供了stream api支持流元素上的功能性操作。stream api集成到collections api中,使用批量操作,如串行or并行 map-reduce 转换。
2、使用key collisions改进HashMap的性能
compact profiles
包含java SE平台预定义的子集和使不需要整个平台被部署和运行在小型设备中的应用
security
1、客户端默认启用TLS1.2
2、新的AccessController.doPrivileged,用代码断言它的privileges的子集,没有防止全栈遍历时检查其他权限
3、更强的基于密码的加密算法
4、SSL/TLS SNI扩展在JSSE服务器中支持
5、支持AEAD算法:SunJCE提供增强的支持AES / GCM / nopadding密码的实现以及GCM算法参数,SunJSSE提供基于密码套件的AEAD模式增强
6、keystore增强,包含新的keystore类型java.security.DomainLoadStoreParameter,和新的命令行选项-importpassword
7、SHA-224 Message Digests
8、NSA Suite B加密支持
9、更好的支持High Entropy 随机数生成
10、新的java.security.cert.PKIXRevocationChecker类为配置撤销X.509证书
11、win下64-bit PKCS11
12、新的rcache 类型在Kerberos 5 Replay Caching
13、支持Kerberos 5协议转换和约束代理
14、默认禁用Kerberos 5弱的加密
15、未绑定SASL为GSS-API/Kerberos 5机制
16、多主机名下SASL服务
17、在Mac OS X上JNI桥接到native JGSS
18、在sunjsse提供更强的实力,EDH键的支持
19、在JSSE支持服务器端密码套件个性设置
JavaFX
1、新Modena theme实现
2、新SwingNode类容许开发者嵌套Swing内容到javaFX应用中
3、新UI Controls 包含DatePicker 和TreeTableView
4、javafx.print包为JavaFX提供公***printing API
5、三维图形特性,目前包含3D shapes、camera、lights、subscene、material、picking和antialiasing
6、WebView类提供的新功能和改进,支持更多关于HTML5的特性,Web Scokets,Web Workers和Web Fonts
7、增强文本的支持
8、支持Hi-DPI 显示
9、css样式类变成公***API
10、新的ScheduledService类允许自动重启服务
11、ARM平台可用JavaFX
tools
1、jjs命令调用Nashorn引擎
2、java命令允许JavaFX应用
3、java man page已经更新
4、jdeps命令行工具提供分析类文件
5、Java Management Extensions (JMX) 提供远程诊断命令
6、jarsiger工具可选,从TSA请求签名时间抽
7、javac tool
7.1、-parameters选项存储正式的参数名和反射API检索正式参数的名称
7.2、JLS 15.21相等操作的类型规则通过javac命令正确的执行
7.3、javac工具现在支持检查javadoc注释的内容,该特性通过-Xdoclint选项
7.4、javac工具现在提供生成native header的能力。移除javah工具,通过javac的-h选项使用
8、javadoc tool
8.1、javadoc工具支持新DocTree API
8.2、javadoc工具支持新的javadoc 访问API,允许在java 应用直接调用javadoc 工具,没有执行新的进程
8.3、javadoc工具现在支持检查javadoc注释的内容,该特性通过-Xdoclint选项
Internationalization
1、unicode增强,支持unicode6.2.0
2、采用unicode CLDR数据和java.locale.providers 系统属性
3、新的Calendar和Locale APIs
4、安装一个自定义的资源包作为一个扩展的能力
Deployment
1、对sandbox applet和 java web start app,URLPermission现在是用来允许连接到服务器从它们启动完成后。SocketPermission不再授权
2、在所有安全级别,在主要jar文件的jar文件的manifest中必须给定权限属性
Date-Time Package
一个新的软件包,提供更加全面的日期-时间模型
Scripting
Nashorn js 引擎
Pack200
1、Pack200支持常量池条目和由JSR 292引入了新的字节码
2、JDK8支持由JSR-292, JSR-308 and JSR-335指定类文件的变化
IO and NIO
1、基于Solaris在Solaris事件端口机制实现新的SelectorProvider。使用系统属性java.nio.channels.spi.Selector设置的值sun.nio.ch.EventPortSelectorProvder运行
2、减少<JDK_HOME>/jre/lib/charsets.jar文件中数量
3、提高java.lang.String(byte[], *)构造器和java.lang.String.getBytes()方法的性能
java.lang and java.util.Pack ages
1、并发的数组排序
2、标准的编码和解码Base64
3、无符号运算的支持
JDBC
1、移除JDBC-ODBC桥
2、JDBC4.2引入新的功能
Java DB
1、JDK8 包含 Java DB 10.10
Networking
1、添加java.net.URLPermission类
2、在java.net.HttpURLConnection中,如果安装安全管理,请求要求打开一个连接请求的权限
Concurrency
1、在java.util.concurrent包中新增类和接口
2、java.util.concurrent.ConcurrentHashMap类添加方法支持聚合操作,基于新的流设施和lambda expressions
3、java.util.concurrent.atomic包中添加类支持可扩展可更新的变量
4、 java.util.concurrent.ForkJoinPool类中添加方法支持通用池
5、 java.util.concurrent.locks.StampedLock类已经添加使用3种模式控制读/写访问的基于能力的锁
Java XML – JAXP
HotSpot
1、硬件特性增加了AES,UseAES和UseAESIntrinsics标签在打开基于硬件AES可用(Inter 硬件),硬件必须是2010或更新Westmere硬件,如:打开硬件AES,使用下面标记
-XX:+UseAES -XX:+UseAESIntrinsics
关闭硬件AES:
-XX:-UseAES -XX:-UseAESIntrinsics
2、移除PermGen
3、通过为方法调用引入字节码指令支持默认方法