Java SE 8.0 新增特性,se8.0
Java SE 8.0 新增特性,se8.0
Java SE 8.0 新增特性
Java SE 7.0于2011年7月28日发布,Java SE 8.0于2014年3月18日发布,二者属于Java平台标准版的不同版本,下面根据骨文官方网站
http://www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html,2016
提供的内容,就以下几方面对它们之间的差别进行详细说明。
- 程序语言
- Collections
- 安全性
- JavaFX
- 工具
- 国际化
- 并行控制
- 其他变化
程序语言
与Java SE 7.0相比,Java SE 8.0在程序语言方面有以下七个改进:
Collections
Java SE 7.0和Java SE 8.0在Collections(集合)方面也有两点变化。
首先,在新的java.util.stream包里的类提供了一个Stream API来支持元素流的函数式操作,这个Stream API合成了Collecetions API。Java SE 8.0 中的 Stream 是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或大批量数据操作。Stream API 借助于同样新出现的 Lambda 表达式,极大地提高了编程效率和程序可读性。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。通常编写并行代码很难而且容易出错,但使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。其次,新版平台还改进了有关键碰撞的hashmap。
安全性
Java SE 8.0默认包含客户端TLS1.2,且新的AccessController.doPrivileged使编码能够维护特权子集,不用阻止全部的堆的横断来检查许可,在加密算法上也更强,同时SSL/TLS的SNI扩展支持到JSSE服务器,支持AEAD算法,关键存储也加强了。其他安全性方面的改进还有:新增SHA-224消息整理;更好地支持大熵值的随机数生成;为X.509 certificates的配置撤回检查新增java.security.cert.PKIXRevocationChecker ;为Windows新增64位PKCS11。
在Kerberos5安全认证系统方面,Java SE 8.0新增了缓存类型,支持Kerberos5安全认证系统的协议转换和约束代表,并为GSS接口和Kerberos5机制提供无约束的简单认证和安全层(SASL)。
除此之外,新版还为多个主机名提供SASL服务,在Mac系统上为本地JGSS提供JNI桥,在SunJSSE供应商处提供更强的短暂DH密匙,支持JSSE偏好定制的服务端密码。
JavaFX
JavaFX主要致力于客户端开发,以弥补swing的缺陷,主要提供图形库与media库,支持audio、video、graphics、animation、3D等,同时采用现代化的css方式支持界面设计。同时又采用XUI方式以XML方式设计UI界面,达到显示与逻辑的分离。
在Java SE 8.0中用新的Modena主题来替换原来的Caspian主题,也可以通过setUserAgentStylesheet(STYLESHEET_CASPIAN)来继续使用Caspian主题。另外提供了3D图像处理API,包括Shape3D (Box、Cylinder、MeshView、Sphere子类)、SubScene、Material、PickResult、LightBase (AmbientLight 和PointLight子类)、ceneAntialiasing等,Camera类也得到了更新。
此外与旧版相比,Java SE 8.0从JavaDoc中可以找到更多信息,强化了富文本的支持,增加日期控件DatePicker、用于 CSS 结构的公共 API和TreeTableView。同时增强了WebView功能,新增了可视化工具JavaFX Scene Builder 2.0,加速JavaFX图形界面的开发。
另外值得一提的是新增的 ScheduledService类允许自动重启服务,且JavaFX 8对ARM平台也可用。
工具
Java SE 8.0主要在两大类工具上有变化——javac工具和javadoc工具,其主要变化如下:
国际化
Java SE 8.0与国际更加接轨,其表现在:
并行控制
在新增Stream与lambda的基础上,在java.util.concurrent.ConcurrentHashMap中加入了一些新方法来支持聚集操作。同时也在java.util.concurrent.ForkJoinPool类中加入了一些新方法来支持共有资源池。
新增的java.util.concurrent.locks.StampedLock类提供一直基于容量的锁,这种锁有三个模型来控制读写操作,被认为是不太有名的java.util.concurrent.locks.ReadWriteLock类的替代者。
在java.util.concurrent.atomic包中还增加了DoubleAccumulator类、DoubleAdder类、LongAccumulator类和LongAdder类。
其他变化
除以上列举的几大类变化之外,Java SE 8.0与Java SE 7.0还存在很多其他的小变化,以下列举其中一部分。
相关文章
- 暂无相关文章
用户点评