您的浏览器过于古老 & 陈旧。为了更好的访问体验, 请 升级你的浏览器
Ready 发布于2014年10月06日 03:58

原创 Java SE 5 新特性详解

1337 次浏览 读完需要≈ 17 分钟

内容目录

Java SE 5于2004年09月29日正式发布,这是一个功能改进非常之多的关键版本。以下是根据官方文档整理出来的Java SE 5的新特性以及其它增强内容。

性能增强

垃圾回收策略 - 提供客户端或服务器运行时编译器的自动检测或手动选择,从而提高服务器(Server-Class Machine)的性能。详情参考Java 虚拟机

StringBuilder类 - 添加一个新的类StringBuilder,它是StringBuffer的非线程安全版本。你应该使用StringBuilder替换所有的StringBuffer,除非你需要同步(当然,多数时候你是不需要的)。StringBuilder几乎总是比StringBuffer要快。

Java 2D 技术 - 改进Java 2D 图形渲染的性能,并有益于Swing/JSC等功能领域。例如:改进BufferdImage对象的加速,支持使用OpenGL进行硬件加速渲染,改进文本渲染性能。详情参考Java 2D 新特性

Image I/O - 改进读写JPEG图像时的性能和内存占用。详情请参考Image I/O 特性

Java 语言新特性

  • 泛型
  • 增强for循环
  • 自动装箱/拆箱
  • 类型安全枚举
  • 可变参数
  • 静态导入
  • 元数据(注解)

虚拟机

类数据共享

类数据共享(Class Data Sharing)是J2SE 5.0的一项新特性,旨在减少应用程序的启动时间和内存占用。安装进程会从系统jar文件中加载一系列的类到一个私有的内部表示,并将其转储到一个叫做"shared archive"的文件中。在随后的JVM调用期间,"shared archive"将被映射到内存中,从而节省这些类的加载开销,并允许在多个JVM进程之间共享这些类的许多JVM元数据。

注意:Microsoft Window 95/98/ME 不支持类数据共享。在J2SE 5.0中,只有Java HotSpot 客户端虚拟机,并且在使用串行垃圾回收器(Serial GC)的情况下,才支持类数据共享。

垃圾回收策略

增强并行垃圾回收器(Parallel GC)以监测并适应应用程序的内存需求。你可以指定应用程序的性能目标,JVM将调整Java堆的大小,并以与目标一致的最小应用程序占用来满足性能目标。

这种自适应策略的目标是无需调整命令行选项,即可获得最佳的性能。

服务器类机器探测

当启动应用程序时,运行程序将会试图检测当前是否运行在一台服务器类的机器("server-class" machine)上。

线程优先级更改

线程的优先级已做了些许改变,以允许Java线程和本地线程没有显式地设置优先级,从而平等地竞争。

致命错误处理

致命错误的报告机制已得到增强,以提供改进的诊断输出和可靠性。

高精度时间支持

添加System.nanoTime()方法,用于返回最准确的可用系统计时器的当前值,以毫微秒(十亿分之一秒)为单位。其实际精度取决于当前系统平台。该方法一般用于测量已过的精确时间(两次调用之间的时间差)。

基础类库

lang和util包

网络

本次发布提供对Windows XP(SP1) 和 2003 服务器上IPv6的完全支持。

网络API为协议处理程序提供一种方式,以便在连接或读取操作时设置超时时间。这将有利于任何HTTP客户端应用程序在服务器发生故障时表现稳健。

新的API提供一种用途,可以通过 inetd 来运行Java应用程序(包括RMI应用程序)。

InetAddress 类现在提供一个API,以允许测试主机的可到达性。该特性为Java提供了一种类似 ping 命令的能力。

改进 Cookie 支持。应用程序或 web 容器可以通过实现新的 CookieHandler API 来进行 Cookie 管理。

改进代理服务器配置。Web 容器或应用程序借助 ProxySelector API,代理服务器的配置现已成为动态的,并且可操控的,甚至还可以处理连接代理服务器的失败。

一个新的框架为协议处理程序提供了一种方式,以访问由系统平台或第三方实现的文件缓存机制。

URL 类规范现在托管了当前 J2SE 授权的一组最小的协议处理程序。它们是http,https,file,jar,ftp。

对 JSSE(SSL/TLS) 进行了一系列的增强。详情查看:Security Enhancement

安全

J2SE 5.0在安全方面进行了显著的增强。它提供了更好的安全token支持,支持更多的安全标准(SASL, OCSP, TSP),改进了可量测性(SSLEngine)和性能,在加密(crypto)和Java GSS方面加上了许多的功能增强。详情参考Security

国际化

字符处理基于Unicode 4.0 标准。

DecimalFormat 类现已被增强,以用于格式化或解析BigDecimalBigInteger的值,而不会丢失精度。格式化这些值将会自动进行增强,解析为BigDecimal需要通过调用setParseBigDecimal方法来启用。

java.utiljava.text包中所有对本地区域设置敏感的功能现已支持越南。详情查看支持的区域设置

改进环境变量的支持

System.getenv(String) 方法已不再过时。新的System.getenv()方法允许访问进程环境并返回一个Map<String, String>

ProcessBuilder

新的ProcessBuilder类提供了一个比 Runtime.exec 更便捷的方式来调用子进程。尤其是,ProcessBuilder 使得在一个被修改的进程环境(意即基于父进程的环境,但稍作修改)中启动一个子进程更加容易。

Formatter

一个用于printf风格的格式化字符串的解析器,Formatter 类为布局排版对齐,常见的数字、字符串和日期/时间数据,以及指定区域设置的输出,提供支持。也支持诸如 byte、 java.math.BigDecimaljava.util.Calendar 等公共Java类型。通过java.util.Formattable 接口,还可以为任意用户类型提供有限的格式化定制。

Scanner

java.util.Scanner 类可用于将文本转换为原始数据类型或字符串。由于它基于java.util.regex 包,因此它也提供一种方式在流、文件数据、字符串或 Readable 接口的实现中执行基于正则表达式的搜索。

反射

添加对泛型、注解和枚举的支持,并添加一些便捷方法。这也使得类java.lang.Class泛型化。

JavaBean组件体系结构

添加PropertyChangeEvent的子类IndexedPropertyChangeEvent,用来支持绑定properties,并使用索引来标识 bean 更改的部分。此外,PropertyChangeSupport类也添加了方法来触发被索引的属性更改事件。

集合框架

添加支持针对集合的3种新的语言特性:泛型、增强for循环,以及自动装箱。

集合框架中添加3个新的接口:QueueBlockingQueueConcurrentMap(其中两个是java.util.concurrent包的一部分)。

Queue添加了3个具体(concrete)的实现,和一个骨架(skeletal)实现。

添加5个阻塞队列实现,和一个ConcurrentMap实现。

提供特殊用途的、与类型安全的枚举结合使用的MapSet的实现。

添加特殊用途的、写入时复制(copy-on-write)的ListSet实现。

提供包裹器实现,从而为大多数集合接口添加动态的类型安全。

提供几种新的算法来操作集合。

提供计算数组的哈希码(hash code)和字符串表示的方法。

XML处理API(JAXP)

二进制操作

Math

Instrumentation

序列化

线程并发工具库

线程

监控和管理

集成类库

远程方法调用(RMI)

JDBC

CORBA, Java IDL, and Java RMI-IIOP

JNDI

用户界面(UI)

国际化

Java 声音(Sound)技术

Java 2D 技术

Image/IO

AWT

Swing

部署

常规部署

Java Web Start 部署

工具体系结构

Java虚拟机工具接口(JVMTI)

Java平台调试器体系结构(JPDA)

Java编译器(javac)

Javadoc 工具

注解处理工具(apt)

J2SE 5.0故障排除和诊断指南

操作系统&硬件平台

支持的系统配置

64位 AMD 皓龙处理器(AMD Opteron Processors)

本文参考

  • CodePlayer技术交流群1
  • CodePlayer技术交流群2

0 条评论

撰写评论