转载自:http://www.javalord.com/javalordblog/?p=349
java SE 7规范(又名JDK 7)开发进展很顺利,计划于2011年夏天发布最终版本。为了让开发者能够方便快速地一览JDK 7中的所有重要元素,Developer.com发表了JDK 7 Reference Card,为开发者提供参考。
JSR203:JDK中会更多的IO API(“NIO.2”) | |
访问文件系统 | 与之前的JDK中通过java.io.File访问文件的方式不同,JDK7将通过java.nio.file包中的类完成。JDK7会使用java.nio.file.Path类来操作任何文件系统中的文件。(这里说的任何文件系统指的是可以使用任何文件存储方式的文件系统)
示例: Java7之前 File file = new File(“some_file”); 使用Java7 Path path = Paths.get(“some_file”); 在File类中加入了新的方法toPath(),可以方便的转换File到Path Path path = new File(“some_file”).toPath(); |
Socket通道绑定和配置 | 在JDK7中面向通道的网络编程也得以更新!JDK7中可以直接绑定通道的socket和直接操作socket属性。JDK7提供了平台socket属性和指定实现的socket属性。
|
灵活的异步I/O | 可以通过真正的异步I/O,在不同的线程中运行数以万计的流操作!JKD7提供了对文件和socket的异步操作。一些JDK7中的新通道:
|
JSR292:Java平台中的动态编程语言 |
Da Vinci Machine项目(JSR292)的主旨是扩展JVM支持除Java以外的其它编程语言,尤其是对动态编程语言的支持。所支持的语言必须和Java一样不收到歧视并共同存在。 |
JSR334:Java语言的一些改进 |
OpenJDK项目的创造(JSR334)的主旨是对Java语言进行一些小的改进来提高每天的Java开发人员的工作。这些改进包括:
|
JSR119:Java编译器API |
JSR199是在JDK6中加入的,主要用来提供调用Java编译器的API。除了提供javac的命令行工具,JSR199提供Java编译器到程序交互的能力。Java编译器API要达到三个目标:
|
JSR206:Java XML处理的API (JAXP) |
JSR206即Java API for XML Processing(JAXP),是Java处理XML文档的一个与实现无关,灵活的API。
JAXP1.3的主要特性包括:
|
JSR224:基于XML的Web服务API(JAX-WS) |
JSR224即Java API for XML-based Web Services(JAX-WS),是一个基于Annotation标注的编程模型,主要针对Web Service应用和客户端开发。
JAX-WS2的主要特性包括:
事务处理(使用JAXB2.1绑定W3C EPR到W3CEndpointReference类,使用JAXB Marshall/Unmarshall W3CendpointReference类)
|
小的改进 | |
java.util.Objects | 提供了一套9个静态方法。其中两个方法用来检测当前对象是null还是非null。两个方法用来提供生成toString()字符串同时支持null对象。两个用来处理hash的方法。两个方法用来处理equals。最后一个compare方法用来进行比较。 |
Swing JLayer组件 | JXLayer是一个组件装饰器,提供了用来装饰多个组合组件的方式,并且可以捕获所有鼠标、键盘和FocusEvent的事件,并针对所有的XLayer子组件。这个组件只会对public swing的api起作用,对全局设置没有作用,例如对EventQueue或者RepaintManager。(除了这些,Swing还将在JDK7中提供JXDatePicker和CSS方式样式) |
并发和集合API | JSR166,并发和集合API提供了灵活的异步处理,并发HashMap,传输队列和轻量级的fork/join框架以及本地线程方式的伪随机数生成器。 |
类加载器体系结构 | 类加载器已经升级到了可以在无等级类加载器拓扑中避免死锁。JDK7中包含了一个对于多线程自定义类加载器的增强实现,名字为具有并行能力的类加载器。使用平行能力的类加载器加载class,会同步到类加载器和类名。 |
Locale类的改进 | Java Locale避免由于小的变化导致数据丢失。除此,Locale应该提供更多的特性,例如IETF BCP 47和UTR 35(CLDR/LDML)。 |
分离用户Locale和用户接口Locale | JDK7分离了UI语言的locale和格式化locale,这个已经在Vista之后的windows系统中实现了。 |
严格的类文件检测 | 通过JavaSE6的规范,version51(SE7)的类文件和之后的版本必须通过类型检测来检验。对于老的推理验证VM不可以宕掉 |
Elliptic-Curve
Cryptography (ECC)椭圆曲线加密 |
从JDK7开始,Java提供对标准的ECC算法的灵活实现(基于椭圆曲线的公钥加密算法) |
Swing中的Nimbus外观 | Nimbus是JDS(Java Desktop System)中的新外观。这个也是Solaris11的GTK主题 |
Java2D中的XRender Pipeline | JDK7中加入了基于X11 XRender扩展的Java2D图形管道。这将提供更多的对于当前先进的GPUs访问的功能。 |
TLS1.2 | TLS (Transport Layer Security)是一个用在Internet上的数据传输安全协议,用来避免监听、引诱和消息伪造。TLS的主要目的是提供两个应用间通信的隐私和数据完整。TLS是RFC5246标准,在JDK7中提供1.2 |
JDBC4.0/4.1 | JDBC4.1特性只在JDK7或者更高版本中存在。JDBC4.1只是对JDBC4.0进行较小的改动。关于一些JDBC4.0/4.1的特性:
|
透明窗体和异形窗体 | 为了6u10版本的图形处理,JDK提供了透明效果的支持(简单透明和像素透明)并且提供了对于异形窗体的支持(可以将窗体设置成任意形状),轻重混合并且增强了AWT安全警告。透明效果和异形窗体是通过com.sun.awt.AWTUtilities类实现的。 |
Unicode6.0 | Unicode6.0提供了诸如2.088字符集、对已经存在字符集的属性改进、格式化改进以及新的属性和数据文件。
JDK7已经更新到对Unicode6.0的支持。 |
要来关闭URLClassLoader的方法
对JMX代理和MBeans的改进 |
通过URLClassLoader,应用可以通过URL搜索路径来加载类和资源。JKD7提供了close()新方法来帮助URLClassLoader清理资源。
这个改进来至于JRockit,可以方便连接平台。MBean服务器可以通过防火墙提供一套MBeans,这些暴露了VM中的一些内部操作的信息 |
新的垃圾回收器 | JDK7提供了新的垃圾回收器,针对目前的CMS垃圾回收器,这将会让垃圾回收器有更少的停顿时间和更高的语言效果。 |
改进的JSR |
JSR901:Java Language Specification(JLS)Java语言计划 |
|
JSR924:JVM平台规范 |
|
Java SE API |
|
延期到JDK8或者之后的规范 |
|
JDK7手册参考卡片英文原版下载:http://www.javalord.com/download/7721_JDK7RefCard.pdf
JDK7手册参考卡片中文翻译下载:http://www.javalord.com/download/JDK7 Ref Card_cn.pdf