转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件使用 >> 常用软件 >> 正文
J2SE1.5新功能一览         

J2SE1.5新功能一览

作者:闵涛 文章来源:闵涛的学习笔记 点击数:681 更新时间:2009/4/24 21:56:11

  虽然Java版本从1.0发展到1.4.2,但Java语言本身一直没有什么大的变化,只是增加了少量关键字,所以业界一直在呼吁对Java语言进行修正,以适应新的开发技术。2004年2月Sun发布了代号为“虎”的Java 2标准版( J2SE) 1.5的第一个测试版beta1,几个月后又发布了Beta2版。在这个版本中Sun对Jav语言做了许多令人振奋的革新。为了与.NET竞争,J2SE1.5在易用性上做了重大改进,引入了泛型、增强FOR循环、元数据、类似C语言的格式化输入输出、静态导入、可变参数等总共15个组件JSR(Java Specification Requests )以及由 Java 社团(Java Community Process,JCP)开发的其他将近100个重大更新。

  在这个版本中有这么多令人激动的改变,也许您想尽快了解并使用这些新功能,那么来吧,本文将向你介绍这些重大的修订,这样就可以在深入学习API文档之前对J2SE 1.5有一个大体的了解。

  简化开发

  J2SE1.5 Beta2发布了,Sun在这个版本中对Java语言做了重大修正;这些修订包括泛型、元数据、自动包装、增强的"for"循环、枚举类型、静态导入、类似C语言的格式输入/输出、可变参数、并发程序和更简单的RMI接口。JSR - 201包含四个语言修改;增强的循环、枚举类型、静态导入和自动包装;JSR - 175指定了新的元数据函数、而JSR - 14描述了泛型。

  新的默认语言规范是由1.5版javac编译程序实现的,你不需要像在beta1版中那样提供-source 1.5这个选项。

  元数据

  J2SE 1.5 中的元数据特性提供这样的能力,即向 Java 类、接口、方法和字段关联附加的数据。这些附加的数据或者注释,可以被 javac 编译器或其他工具读取,并且根据不同配置,可以被保存在类文件中,也可以在运行时用 Java 反射 API 发现。

  添加元数据到Java平台中的最主要的原因是能够使开发工具和运行工具有一个共同的体系结构,以减少编程和部署所需要的成本。工具可以使用元数据信息生成附加的源代码,或者在调试的时候提供附加信息。

  在beta2中,我们很高兴地发现了一个名为apt的注释处理工具。 Apt包括一组新的映射应用程序编程接口和工作程序注解的支持体系结构。apt在映射应用程序编程接口时提供一个构造期间、基于源代码的程序结构的只读视图,来清晰地模拟它的Java程序语言的类型系统。首先,apt运行可以生成新的源代码和其它文件的注释处理程序。其次,apt可以编译原始的源文件和生成的源程序,简化了开发。更多的关于apt的信息,请参考apt指南http://java.sun.com/j2se/1.5.0/docs/relnotes/features.html。

  下面的例子用元数据工具创建了一个调试元数据注释,然后这些元数据注释在运行时显示出来。可以想像,大部分的元数据标签形成一个标准,即一个良好规范的集合。

import java.lang.annotation.*;
import java.lang.reflect.*;
@Retention(java.lang.annotation.RetentionPolicy.RUNTIME) @interface debug
{
 boolean devbuild() default false;
 int counter();
}
public class MetaTest
{
 final boolean production=true;
 @debug(devbuild=production,counter=1)
 public void testMethod() { }
 public static void main(String[] args)
 {
  MetaTest mt = new MetaTest();
  try
  {
   Annotation[] a = mt.getClass().getMethod("testMethod").getAnnotations();
   for (int i=0; i<a.length ; i++)
   {
    System.out.println("a["+i+"]="+a[i]+" ");
   }
  }
  catch(NoSuchMethodException e)
  {
   System.out.println(e);
  }
 }
}


  使用元数据处理工具,许多重复的代码步骤可以被简化为一个简明的元数据标签。例如,当访问一个JAX-RPC服务实现的时候,所需得远程接口可以如下面的代码这样实现:

  J2SE1.5版以前

public interface PingIF extends Remote
{
 public void ping() throws RemoteException;
}
public class Ping implements PingIF
{
 public void ping() { }
}


  J2SE1.5

public class Ping
{
 public @remote void ping() { }
}


  泛型

  泛型已经为Java社团所广泛期待,现在成了J2SE 1.5版的一个组成部分。最先能看到泛型起作用的地方就是Collection API。Collection API提供了像LinkedLists, ArrayLists 和 HashMaps这样的函数,可以被不止一种的Java类型使用。接下来的示例中使用了1.4.2库和默认的javac编译方式。

ArrayList list = new ArrayList();
list.add(0, new Integer(42));
int total = ((Integer)list.get(0)).intValue();


  最后一行中的 Integer 转换是泛型所要防止的强制类型转换问题的一个例子。问题是1.4.2版本中,Collection API使用Object类来保存Collection对象,这意味着在编译时不能找出任何类型匹配。问题的第一个标志信息是在运行时抛出的 ClassCastException。

  使用泛型化的Collection库编写的相同示例如下:

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0, new Integer(42));
int total = list.get(0).intValue();


  使用泛型应用编程接口的用户必须只使用<>符号声明在编译类型中使用的类型,不需要进行任何类型强制转换,在本例中试图向Integer集合中添加一个String对象到的操作将会在编译时被捕获。

  泛型允许 API 设计者提供这样的公共功能性:可以与多种数据类型一起使用,也可以在编译时出于类型安全对它进行检查。

  设计你们自己泛型应用程序编程接口比仅仅使用它们要复杂一些。你可以参考java.util.Collection源程序和应用编程接口指南来实现。

  基本类型的自动装箱和拆箱(Autoboxing 和 Auto-unboxing)

  象int、boolean和它们的相对应的基于Object的相应物如Integer和Boolean这样的基本数据类型互相间进行转换时,需要大量不必要的额外编码,尤其是当只是像 Collections API 这样的方法调用需要转换时更甚。

  Java基本类型的autoboxing 和 auto-unboxing 产生更加简明和易用的代码。1.5 版本让所需要的转换转变成 Integer 并转换回编译器。

  1.5版前

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0, new Integer(42));
int total = (list.get(0)).intValue();


  1.5版

ArrayList<Integer> list = new ArrayList<Integer>();
list.add(0, 42);
int total = list.get(0);



[办公软件]在sybase中插入图片、PDF、文本文件  [办公软件]安装Sybase ASE
[办公软件]linux指令大全(完整篇)  [办公软件]Linux新手入门常用命令大全
[办公软件]在RedHat Linux 9里安装gaim0.80  [办公软件]浅谈Linux 下Java 1.5 汉字方块问题解决方法
[办公软件]Linux程序员必读:中文化与GB18030标准  [办公软件]linux指令大全
[办公软件]制作Linux启动盘的四种方法  [办公软件]Linux文件系统的反删除方法
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · 办公软件  · 系统软件
    · 常用软件  · 聊天工具
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台