`

JDK7.0 与 JDK6.0 区别 及 JDK7的新特性

    博客分类:
  • jdk7
 
阅读更多

转载来源:http://hi.baidu.com/dragonqs/item/69bc62c4b35a76c7984aa0b8

 

JDK7.0和JDK6.0有什么区别?

jdk7是模块化程序,模块间的依赖性变小了.jdk的好多功能间有相互依赖性,导致一个配置不对,好多不能用.举例来说:假设你正使用Logging API(java.util.logging)),Logging需要NIO和JMX,JMX需要JavaBeans, JNDI, RMI和CORBA,JNDI需要java.applet.Applet而且JavaBeans依赖AWT.

 

 JDK7 新特性:

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属性。
  • JDK7加入了一个新的字节通道类,SeekableByteChannel
  • NetworkChannel是面向网络通道编程模块中的又一个新的超接口。利用它可以方便的绑定通道socket,并且方便设置和获取socket的属性。
  • MulticastChannel接口方便创建IP协议多播。多播实现直接绑定到本地的多播设备。
灵活的异步I/O可以通过真正的异步I/O,在不同的线程中运行数以万计的流操作!JKD7提供了对文件和socket的异步操作。一些JDK7中的新通道:
  • AsynchronousFileChannel:异步文件通道可以完成对文件的异步读写操作。
  • AsynchronouseSocketChannel:Socket中的一个简单异步通道,方法是异步的并且支持超时。
  • AsynchronousServerSocketChannel:异步的ServerSocket
  • AsynchronousDatagramChannel:基于数据包的异步socket
JSR292:Java平台中的动态编程语言Da Vinci Machine项目(JSR292)的主旨是扩展JVM支持除Java以外的其它编程语言,尤其是对动态编程语言的支持。所支持的语言必须和Java一样不收到歧视并共同存在。JSR334:Java语言的一些改进OpenJDK项目的创造(JSR334)的主旨是对Java语言进行一些小的改进来提高每天的Java开发人员的工作。这些改进包括:
  • Switch语句允许使用String类型
  • 支持二进制常量和数字常量中可以使用下划线
  • 使用一个catch语言来处理多种异常类型
  • 对通用类型实例的创建提供类型推理
  • Try-with-resources语句来自动关闭资源
JSR119:Java编译器APIJSR199是在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的主要特性包括:

  • DOM3
  • 内建通过XML Schema进行文档校验的处理器
  • 对XML Schema中的数据类型的实现,在javax.xml.datatype包中。
  • XSLTC,最快的转换器,也是XSLT处理中的默认引擎。
  • 提供对XInclude的实现。这将会方便我们使用文本和其它已有的XML来创建新的文档,这样可以对文档片段进行重用。
  • JDK7中会包含JAXP1.3,这个是JAXP的最新实现。
绑定技术(JAXB)JSR222即Java Architecture for XML Binding(JAXB)。JAXB的目的是便于Java程序进行Java类到XML文档的映射。

JAXB2的主要特性:

  • 支持全部的W3C XML Schema特性。(JAXB1.0说明了对于W3C XML Schema中某些特性的不支持)
  • 支持绑定Java到XML文档,通过添加javax.xml.bind.annotation包来控制绑定。
  • 大量减少了对于schema衍生出来的类。
  • 通过JAXP1.3的校验API来提供额外的校验能力。
  • JDK7中将包括JAXB2.2
JSR224:基于XML的Web服务API(JAX-WS)JSR224即Java API for XML-based Web Services(JAX-WS),是一个基于Annotation标注的编程模型,主要针对Web Service应用和客户端开发。

JAX-WS2的主要特性包括:

  • 对JAXB2.1 API的支持(JSR222)
  • 对Web Services Addressing 1.0的支持
  • EndpointReference(EPR)的API:创建(BindingProvider.getEndpointReference(),Endpoint.getEndpointReference(),MessageContext.getEndpointReference())

事务处理(使用JAXB2.1绑定W3C EPR到W3CEndpointReference类,使用JAXB Marshall/Unmarshall W3CendpointReference类)

  • 提供友好的API来启用和停止某些特性,例如MTOM特性和Addressing特性
  • JDK7将包含JAX-WS2.2
可插拔的Annotation处理APIJSR269即Pluggable Annotation-Processing API
  • 从JDK5开始,Annotation标注就成了强大的机制用来标注我们的类、属性和方法。通常Annotation标注是在创建阶段或者运行阶段进行处理的,并获取语义结果。JSR269主要用来定义一套API,允许通过可插拔的API来进行标注处理器的创建。
  • 规范包括一部分的API用来对Java编程语言进行构建,还有就对标注处理器声明和控制运行的部分。
  • 有了程序中的Annotation标注,就需要有标注处理器框架来反射程序的结构。
  • Annotation处理器会指定他们处理的标注并且更多的处理器可以合作运行。
  • 标注处理器和程序结构的API可以在构建阶段访问。
小的改进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方式样式)并发和集合APIJSR166,并发和集合API提供了灵活的异步处理,并发HashMap,传输队列和轻量级的fork/join框架以及本地线程方式的伪随机数生成器。类加载器体系结构类加载器已经升级到了可以在无等级类加载器拓扑中避免死锁。JDK7中包含了一个对于多线程自定义类加载器的增强实现,名字为具有并行能力的类加载器。使用平行能力的类加载器加载class,会同步到类加载器和类名。Locale类的改进Java Locale避免由于小的变化导致数据丢失。除此,Locale应该提供更多的特性,例如IETF BCP 47和UTR 35(CLDR/LDML)。分离用户Locale和用户接口LocaleJDK7分离了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 PipelineJDK7中加入了基于X11 XRender扩展的Java2D图形管道。这将提供更多的对于当前先进的GPUs访问的功能。TLS1.2TLS (Transport Layer Security)是一个用在Internet上的数据传输安全协议,用来避免监听、引诱和消息伪造。TLS的主要目的是提供两个应用间通信的隐私和数据完整。TLS是RFC5246标准,在JDK7中提供1.2JDBC4.0/4.1JDBC4.1特性只在JDK7或者更高版本中存在。JDBC4.1只是对JDBC4.0进行较小的改动。关于一些JDBC4.0/4.1的特性:
  • 数据源—Derby包括了对于javax.sql.DataSource的新的实现
  • JDBC驱动自动加载—应用不必在通过Class.forName()方法来加载数据库驱动了。取而代之的是DriverManager会根据应用请求连接的情况,自动查找到合适的JDBC驱动。
  • 包装—这是JDBC4.0中的新的概念,主要是通过这种机制可以让应用获取的厂商提供的标准JDBC对象实现,例如Connections,Statements和ResultSets。
  • Statement事件—连接池可以监听Statement的关闭和错误时间。addStatementEventListener和removeStatementEventListener被加入到了javax.sql.PooledConnection
  • JDK7提供了JDBC4.1全部的支持
透明窗体和异形窗体为了6u10版本的图形处理,JDK提供了透明效果的支持(简单透明和像素透明)并且提供了对于异形窗体的支持(可以将窗体设置成任意形状),轻重混合并且增强了AWT安全警告。透明效果和异形窗体是通过com.sun.awt.AWTUtilities类实现的。Unicode6.0Unicode6.0提供了诸如2.088字符集、对已经存在字符集的属性改进、格式化改进以及新的属性和数据文件。

JDK7已经更新到对Unicode6.0的支持。

要来关闭URLClassLoader的方法

对JMX代理和MBeans的改进

通过URLClassLoader,应用可以通过URL搜索路径来加载类和资源。JKD7提供了close()新方法来帮助URLClassLoader清理资源。

这个改进来至于JRockit,可以方便连接平台。MBean服务器可以通过防火墙提供一套MBeans,这些暴露了VM中的一些内部操作的信息

新的垃圾回收器JDK7提供了新的垃圾回收器,针对目前的CMS垃圾回收器,这将会让垃圾回收器有更少的停顿时间和更高的语言效果。改进的JSRJSR901:Java Language Specification(JLS)Java语言计划
  • JSR901包括了从第一版Java规范到现在为止的所有的变化、说明和补充。Java语言通过JLS规范。
  • 对于JLS的改变通过JSR901进行管理
  • JDK7将会包括最新的JSR901
JSR924:JVM平台规范
  • JSR924目的是维护Java虚拟机规范的变化,其中第二版是为了J2SE1.5的。
Java SE API
  • JavaSE APIs保持着对例行维护和小范围改进的加入计划的记录
延期到JDK8或者之后的规范
  • JSR294:Java语言和虚拟机对模块编程技术的支持—当前JSR主要的目的是提供在编译期和运行期的模块编程支持
  • JSR308:对于Java类型的Annotation注释—这将是对于当前注释符号系统的扩展,将允许我们在类型中出现注释符号。
  • JSR296:Swing应用框架—主旨是消除Swing编程中的模板代码并且提供Swing程序更加简单的结构。
  • 模块化—提供一个明确的、简单的、低级别的模块系统,主要目的是将JDK模块化。
  • JSR TBD:Lambda项目—Lambda表达式(通俗的也称为“闭包“)和对Java编程语言的保护方法
  • JSR TBD:对于集合支持的语言—常量表达式对于lists、sets和maps的迭代以及通过索引符号对lists和maps的访问。
  • Swing JDatePicker组件—添加SwingLabs JXDatePicker组件到平台。

JDK7手册参考卡片英文原版下载:http://www.javalord.com/download/7721_JDK7RefCard.pdf

JDK7手册参考卡片中文翻译下载:http://www.javalord.com/download/JDK7 Ref Card_cn.pdf

分享到:
评论

相关推荐

    linux 下 配置JBoss6.0+JDK7.0

    在Linux环境下配置JBoss6.0与JDK7.0是一项关键的任务,因为这两个组件是许多企业级Java应用的基础。JBoss是一个流行的开源应用服务器,它支持Java EE规范,而JDK则是运行Java应用程序和应用服务器所必需的开发工具包...

    JDK_API6.0/7.0&&JavaEE6 API 英文版

    JDK 7,即Java Development Kit 7,继续扩展了Java的功能,引入了一些重要的新特性: 1. **语法糖:**包括钻石操作符()和try-with-resources语句,提高了代码的可读性和简洁性。 2. **多版本兼容的JAR**:允许在...

    IIS7.0和tomcat6.0整合成功案例笔记(有图)

    整合环境主要包括Windows Server 2008操作系统,JDK 1.6.0,IIS7.0和Tomcat6.0。在这种环境下,IIS和Tomcat的默认端口保持不变,分别是80(IIS)和8080(Tomcat)。通过isapi_redirect-1.2.26.dll文件,我们可以实现...

    jdk-6u45-windows-i586

    1. **Servlet和JSP版本**:JDK 1.6支持Servlet 2.5和JSP 2.1标准,这与Tomcat 6.0和7.0所支持的版本相匹配,因此可以顺利地运行基于这些标准的应用程序。 2. **配置兼容**:Tomcat的配置文件和JDK 1.6的环境设置...

    tomcat6.0and7.0version

    这个版本引入了许多新特性,包括增强的安全性、更好的性能和稳定性。对于开发者来说,Tomcat 6.0提供了更友好的管理界面,使得部署和管理Web应用更为便捷。此外,它还优化了线程池处理,提高了并发请求的响应速度,...

    适用于 SQL Server 2014、2012、2008R2的JDBC Drivers 4.1

    适用于 SQL Server 的 Microsoft JDBC Driver 4.1(预览版)与 JDBC 4.0 兼容,并且可以在 Java 开发工具包 (JDK) 版本 5.0、6.0 和 7.0 中运行。 用于 SQL Server 的 Microsoft JDBC Driver 4.0 与 JDBC 4.0 兼容...

    Tomcat(6.0+7.0+8.0+8.5+9.0+教程)安装包版本大全(附配置教程)大全

    在安装时,需要注意的是,6.0版本可能不支持最新的Java JDK版本,通常需要与JDK 1.6或更低版本配合使用。 Tomcat 7.0 带来了许多改进和新特性,包括对Java EE 6的支持、NIO2的引入、更好的管理和监控工具以及增强的...

    JDK+Myeclipse+Tomcat安装步骤教程

    * 安装MyEclipse之前,请先下载MyEclipse安装包,选择适合自己的版本,例如MyEclipse 6.0或7.0。 * 安装MyEclipse时,请使用默认设置,不要修改安装路径,以免后期配置环境变量时出现问题。 * 安装完成后,请耐心...

    JDK 6 TOMCAT 6 Eclipse 3.3 Myeclipse 6.07.0 安装说明

    ### JDK 6、TOMCAT 6、Eclipse 3.3、Myeclipse 6.0/7.0 ...以上就是 JDK 6、TOMCAT 6、Eclipse 3.3 和 Myeclipse 6.0/7.0 的安装与配置过程。通过这些步骤,您应该能够成功地搭建起一个功能完整的 Java Web 开发环境。

    java-jre7.0

    对于开发人员来说,了解并掌握JRE 7的新特性和改进,能够提高代码质量和开发效率。而对于系统管理员和用户而言,确保系统中安装的是官方正式版本的JRE,能够保证应用程序的正常运行,并获取持续的安全更新和支持。

    apache2.2.4+tomcat6.0整合配置

    首先,你需要安装JDK 7.0,因为Tomcat 6.0需要Java环境才能运行。确保正确设置`JAVA_HOME`环境变量,指向JDK的安装路径,以便Tomcat能够找到Java运行时环境。 接下来是Apache HTTP Server 2.2.4的安装。Apache作为...

    Tmocat6.0下载文件和安装配置教程

    【Tmocat6.0下载文件和安装配置教程】 Tomcat是一款广泛应用的开源Web服务器和Servlet容器,尤其在轻量级应用服务器领域占据重要地位。Tmocat6.0是其较早的一个版本,虽然现在最新的版本已经更新到9.x,但仍有部分...

    jdk解密问题1

    对于不同版本的JDK,你需要下载对应版本的无限制策略文件,例如Java 5.0、6.0或7.0的版本。下载后,你需要将解压得到的`local_policy.jar`和`US_export_policy.jar`文件复制到JRE或JDK的`lib/security`目录下,覆盖...

    IIS6.0+Tomcat7.0整合总结(推荐)

    IIS6.0与Tomcat7.0整合是指将Microsoft的Internet Information Services(IIS)与Apache Tomcat服务器软件进行集成,使得IIS可以用来托管Java Web应用程序,同时保持了对ASP和***等其他Web应用的支持。整合的目的是...

    Java套课件幻灯片完整版ppt教学教程最全电子讲义(最新).pptx

    2009年,甲骨文(Oracle)公司宣布收购SUN,甲骨文公司又陆续发布了JDK6.0,JDK7.0,2014年发布了JDK8.0版本。 Java语言的名字来源于一款小岛产的咖啡,味道独特。SUN公司使用JAVA这个名称寓意着做Java程序就像享受...

    apache-tomcat-6.0

    尽管标题提到的是6.0版本,但这里也包含了一个7.0版本的下载,这可能是提供者为了提供更多选择或者方便用户进行版本比较。Tomcat 7.0.72相比6.0.45,不仅有版本上的提升,还引入了更多的功能和改进,比如更好的性能...

    activiti6.0.rar

    通过与JDK 1.8和Tomcat 7.0的配合,你可以快速搭建起一个流程管理系统。同时,通过阅读提供的文档和理解"WEB-INF"和"META-INF"目录下的内容,你可以深入掌握Activiti的内部机制,并根据需求进行定制和扩展。

    Java如何从掌握台中读取数据_.docx

    在 Java 中从控制台读取数据有多种方式,包括 JDK 1.4 及以下版本的 BufferedReader,JDK 5.0 引入的 Scanner 类,以及 JDK 6.0 添加的 Console 类。每个方法都有其特点和适用场景。BufferedReader 是最基础且适用于...

    android 7.0 源码下载(24)

    Android 7.0,代号Nougat,是Google发布的Android系统的一个重大版本,它带来了许多新特性和性能优化。本文将针对"android 7.0 源码下载(24)"这一主题,详细介绍如何获取和研究Android 7.0的源码,以及这个版本中...

    solr6.0 tomcat搭建

    根据给定的信息,本文将详细解释如何通过使用 JDK 1.8、Tomcat 8.0 和 Solr 6.0 来搭建一个完整的 Solr 服务端环境,并且会覆盖配置文件的具体设置方法。 ### 环境准备 #### 必需组件 - **Solr 版本**: solr-6.6.2...

Global site tag (gtag.js) - Google Analytics