网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.用环境变量定制应用部署 对Web层.
.java 密碼學.
.@cc_on 语句.
.JDOM Programming Part 2.
.java 应用程序 标题栏图标 的 自.
.运行headless Java服务器.
.Tomcat+Mysql入门实例:滚动横幅广.
.一个java中创建class的实例.
.Standard Chartered银行方案.
.Wireless Messaging API.
.JAVA里字符编码的探索与理解.
.类的转换.
.J2ME学习笔记(1)—平台介绍及简单.
.Java库的建立方法及其实例.
.用java实现RSA算法.
.用NetBeans平台开发J2ME游戏实例.
.Java中文处理学习笔记——Hello .
.Java思路 开发易于移植的J2ME游戏.
.3步把您的java程序转换为webserv.
.使用finally关键字来避免资源漏洞.

里程碑式的革新—全新J2SE 1.5新特性简介

发表日期:2008-1-5



  Java2标准版(Java 2 Platform, Standard Edition, J2SE)1.5即将正式推出,这一次的版本更新不同于以往,它带来了很多里程碑式的革新,SUN将其绰号取名为“虎”。这一次的变革将是Java诞生以来从未有过的,它给我们带来了耳目一新的感觉。下面我们就来欣赏一下其中的部分典型变化:
  
  1.自动包装和解包(Autoboxing and unboxing)
  代码示例
  
  往一个ArrayList中加入一个整数,1.5版本以前的版本写法是:
  
  List list = new ArrayList();
  
  list.add( new Integer( 10 ) );
  
  而在1.5版本中可以写为:
  
  list.add( 10 );
  
  因为,在1.5版本中,对一个整数进行包装,使之成为一个Integer对象(即包装,boxing),然后加入到一个ArrayList中的做法被认为是没有必要的,反之,解包(unboxing)的做法也是没有必要的,这样的代码只是增加了程序的文本长度而已,所以1.5版本支持了自动包装和解包操作,对于bool/Boolean,byte/Byte,double/Double,short/Short,int/Integer,long/Long,float/Float的相应包装/解包操作都进行了支持,从而使代码变得简单。
  
  2.更优化的循环语句(The inhanced for loop)
  代码示例
  
  一个典型的遍历数组的循环语句,1.5版本以前的写法是:
  
  for ( Iterator iterator = list.iterator(); iterator.hasNext(); )
  
  {
  
  Integer n = (Integer)iterator.next();
  
  ...
  
  }//for
  
  而在1.5版本中可以写为:
  
  for ( Integer n : list )
  
  {
  
  ...
  
  }//for
  
  显然1.5版本的写法比以前是大大简化了,但是在需要修改集合,比如删除其中元素时不能采用这种写法。之所以Java1.5版本没有象C#那样干脆定义一个foreach要害词,主要是因为SUN认为增加一个专门的要害词成本太高了(too costly)。但1.4版本中就曾经增加了assert要害词,1.5版本中也新增加了enum要害词,因此这一解释恐怕并不那么令人信服。
  
  3.参数可变的方法和printf
  代码示例
  
  当不能确定一个方法的入口参数的个数时,以往版本的Java中,通常的做法是将多个参数放在一个数组或者对象集合中作为参数来传递,1.5版本以前的写法是:
  
  int sum(Integer[] numbers)
  
  {
  
  int nSum = 0;
  
  for(int i: numbers)
  
  nSum += i;
  
  return nSum;
  
  }
  
  ...
  
  //在别处调用该方法
  
  sum(new Integer[] {12,13,20});
  
  而在1.5版本中可以写为:
  
  int sum(Integer... numbers)
  
  {
  
  int nSum = 0;
  
  for(int i: numbers)
  
  nSum += i;
  
  return nSum;
  
  }
  
  ...
  
  //在别处调用该方法
  
  sum(12,13,20);
  
  显然,1.5版本的写法更为简易,也更为直观,尤其是方法的调用语句,不仅简化很多,而且更符合通常的思维方式,更易于理解。
  
  1.5版本自身就有一个应用该特征的典型例子,即C风格的格式化输出方法——printf。
  
  代码示例
  
  输出一个加法算式,1.5版本以前的写法是:
  
  int x = 5;
  
  int y = 7;
  
  int nSum = x + y;
  
  System.out.println(x + " + " + y + " = " + nSum);
  
  而在1.5版本中可以写为:
  
  System.out.printf("%d + %d = %d\n", x, y, nSum);
  
  以上两种写法的输出结构是一样的,即“5 + 7 = 12”。
  
  这种改变不仅仅是形式上的,printf还可以提供更为灵活、强大的输出功能,比如限定按照两位整数的形式输出,可以写为“System.out.printf("%02d + %02d = %02d\n", x, y, nSum);”,输出结果将是“05 + 07 = 12”。
  
  4.枚举
  代码示例
  
  构建一个表示色彩的枚举,并赋值,在1.5版本中可以写为:
  
  public enum MyColor{ Red, Yellow, Blue }
  
  MyColor color = MyColor.Red;
  
  for ( MyColor mycolor : MyColor.values() )
  
  System.out.println( mycolor );
  
  以往的Java版本中没有enum要害词,1.5版本中终于加入了进来,这确实是一个令人兴奋的改进。此外,enum还提供了一个名为values()的静态方法,用以返回枚举的所有值的集合。所以,以上程序的输出结果是把“Red”、“Yellow”、“Blue”分行输出。
  
  而enum提供的静态方法valueOf()则将以字符串的形式返回某一个具体枚举元素的值,比如“MyColor.valueOf(“Red”)”会返回“Color.Red”。静态方法name()则返回某一个具体枚举元素的名字,比如“MyColor.Red.name()”会返回“Red”。类似的方法还有不少。此外,enum自身还可以有构造方法。
  
  5.静态引用
  代码示例
  
  当我们要获取一个随即数时,1.5版本以前的写法是:
  
  import java.lang.Math; //程序开头处
  
  ...
  
  double x = Math.random();
  
  而在1.5版本中可以写为:
  
  import static java.lang.Math.random; //程序开头处
  
  …
  
  double x = random();
  
  静态引用使我们可以象调用本地方法一样调用一个引入的方法,当我们需要引入同一个类的多个方法时,只需写为“import static java.lang.Math.*”即可。这样的引用方式对于枚举也同样有效。
  
  6.总结
  以上对J2SE1.5的部分新特征做了一些简单的介绍。总而言之,1.5版本的Java确实给我们带来了很多令人激动的变革,如同以上介绍的那样,很多功能以前的版本也能实现,但是不能实现得这样简单、漂亮。相信这次变革会给Java带来更多的追随者。
上一篇:Java Script与Java Applet的综合运用(二) 人气:507
下一篇:J2SE 1.4.2增强功能与改变 人气:744
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐