当前位置首页 > 百科> 正文

java 7

2019-11-14 15:49:35 百科
java 7

java 7

java 7,Sun Microsystems开发java,现公司Oracle。

功能完善的程式设计语言版本。

java史上最大版本的一次更新。

基本介绍

  • 中文名:java 7
  • 外文名:java 7
  • 代号:海豚
  • 成就:Java历史上一次重大的版本更新
  • 主要改进:模组化
  • 推出时间:2011年7月7日

简介

Java 7,代号「海豚(Dolphin)」,是Java历史上一次非常重大的版本更新。Java 7 由Sun公司(2009年4月20日被Oracle以74亿美元收购)于2011年7月7日首次推出,并于2011年7月28日正式面向开发人员发布。Java 7 的开发周期分为13个阶段,并于2011年2月18日全部达成。平均每个阶段又更新发布了8个内部小版本,每个版本主要进行功能增强和bug修复。
java 7
Java 7的主要改进:模组化。

修改

主要修改

* Modularization 模组化– JSR 294 或者 Project Jigsaw
* JVM 对动态语言的支持
* 更多新的 I/O APIs 即将完成,包括真正的异步I/O 和最终的真实的档案系统 file system API – JSR 203
* 对XML本地语言支持. (可能的probable)
* Safe rethrow – 允许catch捕获语句让编译器更加聪明的知道基于什幺情况下重新throw什幺内容。
* Null dereference expressions – Null 和 ‘?’ syntax 比较,语法类似 Groovy… 让开发者避免过多的空值验证。
* 更好的类型推断 Better type inference
* 多重捕获Multi-catch
* JSR 296 – Swing 套用框架 application framework – 这方面需要更简单和简洁。

“小的”sun方面的修改有:

* 升级的类载入class loader 架构;
* XRender pipeline for Java 2D:是Open JDK ntegrators Challenge project项目;
* Swing 更新 – JXLayer, DatePicker, CSS styling 等;
* JavaFX

sun方面“快速”的修改(主要是性能更新)

* 并发方面的细微调整 concurrency tweaks (JSR 166),更好的支持Multicore
* G1 垃圾收集器Garbage collector - 带来更小的中断时间,有希望替代 CMS (Concurrent mark sweep) GC
* 64 bit VM的压缩指针Compressed pointer
* MVM-lite – 多个虚拟机能够独立运行套用和允许用kill -9杀死java套用。

新特性

Oracle在其官方网站上公布了《Java SE 7 Features and Enhancements》,其中详细介绍了Java SE 7 中所有主要的新特性和功能增强,具体内容如下:

Java程式语言特性

1.二进制形式的字面值表示
2.在数值类型的字面值中使用下划线分隔设定联接
3.创建泛型实例时自动类型推断
4.switch-case语句支持字元串类型
5.新增try-with-resources语句
6.单个catch子句同时捕获多种异常类型
7.改进使用带泛型可变参数的方法时的编译器警告和错误提示机制

Swing

1.新增javax.swing.JLayer类,一个灵活而且功能强大的Swing组件修饰器。它使你能够直接利用组件和组件的事件回响而无需修改底层组件。你可以点击查看如何使用JLayer修饰组件。
2.NimbusLook&Feel(L&F)从包com.sun.java.swing移动到标準的API包javax.swing;详细信息请查看javax.swing.plaf.nimbus。儘管它不是默认的L&F,但是现在你可以非常方便地使用它了。你可以查看Java教程中NimbusLookandFeel部分的详细信息,也可以在你的程式中运行三个使用Nimbus的简单方法的代码示例。
3.在以前的版本中,在同一个容器中混合使用重量级的AWT组件和轻量级的Swing组件可能会引发某些问题。不过,现在你可以在JavaSE7完美地混合使用它们了。你可以点击这里查看相关文章。
4.JavaSE7支持以指定的透明度或非矩形的方式来显示窗体,你可以点击这里查看Java教程中关于如何创建带有指定透明度和非矩形的窗体的部分内容。
5.类javax.swing.JColorChooser中新增了对以HSV方式来表现RGB色彩模型的支持。HSV和HSL是两种最常见的用于表示RGB色彩模型的表示方式。它们均表示色调、饱和度、亮度三个参数,不过取值形式不同。HSL的三个参数的取值範围均为0-255,HSV的三个参数的取值範围分别为0°-360°、0.0-1.0、0.0-1.0。

JavaIO

1.包java.nio.file以及相关联的包java.nio.file.attribute提供对档案IO以及访问档案系统更全面的支持。JDK7也支持zip压缩格式的档案系统。你可以参考以下资源获得更多信息:
a)你可以点击查看Java教程中关于档案I/O(NIO2.0特性)的部分内容;nio表示非阻塞式的IO(non-blockingI/O)。
b)开发一个自定义的档案系统提供者。
c)zip压缩格式的档案系统提供者。
d)目录%JAVA_HOME%/sample/nio/chatserver/下含有包括java.nio.file包在内的新API的演示示例。
e)目录%JAVA_HOME%/demo/nio/zipfs/下含有NIO2.0网路档案系统的演示示例。

网路

1.类java.net.URLClassLoader新增close方法,该方法可以有效解决如何支持从特定代码库,尤其是jar档案中,载入类或资源的最新实现的问题。详情查看如何关闭URLClassLoader。

安全

1.新增ECDSA/ECDH等基于ECC加密算法的支持,详情查看Java加密体系结构中供应商SunEC提供支持的算法的部分内容。
2.禁用了MD2等一些弱加密算法,JavaSE7提供一种机制,用于在处理证书路径或与TLS互动时拒绝使用指定的加密算法。详情查看Java公共密钥程式设计师指南中的附录D:禁用指定的加密算法和Java安全套接字扩展中的禁用加密算法。
3.对Java安全套接字扩展(JavaSecureSocketExtension)中的SSL/TLS进行了一系列增强和完善。

并发

1.基于类java.util.concurrent.ForkJoinPool的fork/join框架,作为接口java.util.concurrent.Executor的一个实现,它被用来高效地运行工作执行绪池中的大量任务。其中还使用了一种名为work-stealing的技术,它可以充分利用多处理器来保证所有的工作执行绪一直正常工作。详情查看Java教程中的Fork/Join部分。目录%JAVA_HOME%/sample/forkjoin/中包含fork/join的演示示例。
2.新增java.util.concurrent.ThreadLocalRandom类,它消除了使用伪随机数的执行绪之间的竞争。在多执行绪并发访问的情况下,使用ThreadLocalRandom比使用Math.random()可以减少并发执行绪之间的竞争,从而获得更好的性能。例如:
a) intr=ThreadLocalRandom.current().nextInt(4,77);
b) //将返回一个4-77之间的随机整数(不包含77)。
3.新增java.util.concurrent.Phaser类,它是一个新的类似于java.util.concurrent.CyclicBarrier的执行绪同步障碍辅助工具类(它允许一组执行绪互相等待,直到到达某个公共屏障点)。

RichInternetApplication(RIA)/部署

Java2D

1.一个新的基于XRender的渲染管道能够提供改进的图形运行性能,以支持现在的基于DirectX11的桌面套用。默认情况下,这个渲染管道并未启用,不过你可以使用命令行设定属性-Dsun.java2d.xrender=true来启用它。
2.现在JDK可以通过诸如GraphicsEnvironment.getAvailableFontFamilyNames等方法来枚举并显示系统中已安装的OpenType/CFF字型了,并且这些字型都可以被方法Font.createFont识别。你可以查看Java教程选择指定的字型。
3.类java.awt.font.TextLayout现在可以支持西藏文字的脚本了。
4.在Windows和Solaris作业系统中,档案fontconfig.properties中静态指定了JDK可以使用的逻辑字型。不过,在多数Linux系统的实现中,并没有保证在特定的语言环境下对特定字型表现的支持。在JavaSE7中,libfontconfig可选择在「未识别」的Linux平台上使用的逻辑字型。更多信息可以查看Fontconfig。

JavaXML

1.JavaSE7现在已经更新JavaAPIforXMLProcessing(JAXP)至1.4.5版本,与以前的版本相比,该版本修复了许多bug,并且做了许多的改进,尤其是在一致性、安全性和性能方面。虽然JAXP仍然处于1.4版本,不过StAX已经升级到了1.2版本。更多信息你可以查看JAXP1.4.5发行说明以及JAXP1.4.5更新日誌。
2.JavaSE7更新JavaArchitectureforXMLBinding(JAXB)至2.2.3版本,详情查看2.2以上版本的JAXB更新日誌。
3.JavaSE7更新JavaAPIforXMLWebServices(JAX-WS)至2.2.4版本。详情查看2.2以上版本的JAX-WS更新日誌。

国际化

1.JavaSE7中添加或改进了对Unicode6.0.0、本地化目录、本地化类档案以及ISO4217货币符号扩展性的支持。

java.lang包

1.JavaSE7修复了以前版本中多执行绪的自定义类载入器可能出现死锁的问题。

Java虚拟机(JVM)

1.java虚拟机支持非Java语言
2.G1(Garbage-First)垃圾收集器
3.JavaHotSpot虚拟机性能增强

Jdbc4.1

1.支持使用try-with-resources语句进行自动的资源释放,包括连线、语句和结果集
2.支持RowSet1.1
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net