JDK1.5~JDK1.7新特性


JDK1.7

Swing

  • 新增 JLayer 类,是一个灵活而且功能强大的Swing组件修饰器,使用方法:How to Decorate Components with JLayer.
    Nimbus Look and Feel 外观从 com.sun.java.swing 包移到 javax.swing 包中,详情:javax.swing.plaf.nimbus
  • 更轻松的重量级和轻量级组件的混合
  • JColorChooser 类新增 HSV tab.

网络

  • 新增 URLClassLoader.close 方法,请看 Closing a URLClassLoader.
  • 支持 Sockets Direct Protocol (SDP) 提供高性能网络连接,详情请看 Understanding the Sockets Direct Protocol.

集合

  • 新增 TransferQueue 接口,是 BlockingQueue 的改进版,实现类为LinkedTransferQueue

RIA/发布

  • 拖拽的小程序使用一个默认或者定制的标题进行修饰,详情:Requesting and Customizing Applet Decoration in Draggable Applets.
    JNLP 文件做了如下方面的增强,详情请看 JNLP File Syntax:
    The os attribute in the information and resources elements can now contain specific versions of Windows, such as Windows Vista or Windows 7.
    Applications can use the install attribute in the shortcut element to specify their their desire to be installed. Installed applications are not removed when the Java Web Start cache is cleared, but can be explicitly removed using the Java Control Panel.
    Java Web Start applications can be deployed without specifying the codebase attribute; see Deploying Without Codebase
  • 可直接在 HTML 中嵌入 JNLP 文件:Embedding JNLP File in Applet Tag.
  • 可在 JavaScript 代码中检查 Applet 是否已经加载完成:Handling Initialization Status With Event Handlers.
  • 可在 Applet 从快捷方式启动或者拖出浏览器时对窗口样式和标题进行控制:Requesting and Customizing Applet Decoration in Developing Draggable Applets.

XML

  • 包含 Java API for XML Processing (JAXP) 1.4.5, 支持 Java Architecture for XML Binding (JAXB) 2.2.3, 和 Java API for XML Web Services (JAX-WS) 2.2.4.

java.lang 包

  • 消除了在多线程环境下的非层次话类加载时导致的潜在死锁,详情:Multithreaded Custom Class Loaders in Java SE 7.

Java 虚拟机

  • 支持非 Java 语言: Java SE 7 引入一个新的 JVM 指令用于简化实现动态类型编程语言
    Garbage-First Collector 是一个服务器端的垃圾收集器用于替换 Concurrent Mark-Sweep Collector (CMS).
  • 提升了 Java HotSpot 虚拟机的性能

Java I/O

  • java.nio.file 包以及相关的包 java.nio.file.attribute 提供对文件 I/O 以及访问文件系统的全面支持,请看 File I/O (featuring NIO.2).
  • 目录 /sample/nio/chatserver/ 包含使用 java.nio.file 包的演示程序
  • 目录 /demo/nio/zipfs/ 包含 NIO.2 NFS 文件系统的演示程序

安全性

  • 新的内置对多个基于 ECC 算法(ECDSA/ECDH)的支持,详情请看:Sun PKCS#11 Provider’s Supported Algorithms in Java PKCS#11 Reference Guide.
  • 禁用了一些弱加密算法,详情请看 Appendix D: Disabling Cryptographic Algorithms in Java PKI Programmer’s Guide and Disabled Cryptographic Algorithms in Java Secure Socket Extension (JSSE) Reference Guide.
  • Java 安全套接字扩展中对 SSL/TLS 的增强

并发

  • fork/join 框架,基于 ForkJoinPool 类,是 Executor 接口的实现,设计它用来进行高效的运行大量任务;使用 work-stealing 技术用来保证大量的 worker 线程工作,特别适合多处理器环境,详情请看 Fork/Join
  • 目录/sample/forkjoin/ 包含了 fork/join 框架的演示程序
  • ThreadLocalRandom 类class 消除了使用伪随机码线程的竞争,请看 Concurrent Random Numbers.
  • Phaser 类是一个新的同步的屏障,与 CyclicBarrier 类似.

Java 2D

  • 一个新的基于 XRender 的 Java 2D 渲染管道支持现在的 X11 桌面,改善了图形性能,请看 System Properties for Java 2D Technology 中的 xrender .
  • JDK 可枚举并显示出已安装的 OpenType/CFF 字体,通过 GraphicsEnvironment.getAvailableFontFamilyNames 方法 See Selecting a Font.
    TextLayout 类支持西藏语脚本

国际化

  • 支持 Unicode 6.0.0
  • 目录 /demo/jfc/Font2DTest/ 包含 Unicode 6.0 的演示程序
  • Java SE 7 可容纳在 ISO 4217 中新的货币,详情请看 Currency 类.

Java 编程语言特性

  • 二进制数字表达方式;使用下划线对数字进行分隔表达,例如 1_322_222
  • switch 语句支持字符串变量
  • 泛型实例创建的类型推断
  • 使用可变参数时,提升编译器的警告和错误信息
  • try-with-resources 语句
  • 同时捕获多个异常处理

JDBC 4.1

  • 支持使用 try-with-resources 语句进行自动的资源释放,包括连接、语句和结果集
    支持 RowSet 1.1

JDK1.6

对脚本语言的支持如: ruby, groovy, javascript.

Common Annotations

其他感觉用不上


JDK1.5

自动装箱与拆箱

  • 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中。
  • 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue()和doubleValue()方法。
  • 自动装箱,只需将该值赋给一个类型包装器引用,java会自动创建一个对象。
  • 自动拆箱,只需将该对象值赋给一个基本类型即可。
  • java——类的包装器;类型包装器有:Double,Float,Long,Integer,Short,Character和Boolean

枚举

  • 把集合里的对象元素一个一个提取出来。枚举类型使代码更具可读性,理解清晰,易于维护。枚举类型是强类型的,从而保证了系统安全性。而以类的静态字段实现的类似替代模型,不具有枚举的简单性和类型安全性。 简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值。
  • 复杂用法:Java为枚举类型提供了一些内置的方法,同事枚举常量还可以有自己的方法。可以很方便的遍历枚举对象。

静态导入

  • 通过使用 import static,就可以不用指定 Constants 类名而直接使用静态成员,包括静态方法。
  • import xxxx 和 import static xxxx的区别是前者一般导入的是类文件如import java.util.Scanner;后者一般是导入静态的方法,import static java.lang.System.out。

可变参数(Varargs)

  • 可变参数的简单语法格式为:
    methodName([argumentList], dataType…argumentName);

内省(Introspector)

  • 是 Java语言对Bean类属性、事件的一种缺省处理方法。例如类A中有属性name,那我们可以通过getName,setName来得到其值或者设置新 的值。通过getName/setName来访问name属性,这就是默认的规则。Java中提供了一套API用来访问某个属性的getter /setter方法,通过这些API可以使你不需要了解这个规则(但你最好还是要搞清楚),这些API存放于包java.beans中。
  • 一般的做法是通过类Introspector来获取某个对象的BeanInfo信息,然后通过BeanInfo来获取属性的描述器 (PropertyDescriptor),通过这个属性描述器就可以获取某个属性对应的getter/setter方法,然后我们就可以通过反射机制来 调用这些方法。

泛型(Generic)

  • C++ 通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也 不得不对他们进行强制得类型转换。猛虎引入了泛型,它允许指定集合里元素的类型,这样你可以得到强类型在编译时刻进行类型检查的好处。

For-Each循环

  • For-Each循环得加入简化了集合的遍历。假设我们要遍历一个集合对其中的元素进行一些处理。

Ref

文章来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值