`

JDK5.0新特性介绍

    博客分类:
  • java
阅读更多
JDK5.0新特性介绍  [转贴 2006-02-23 15:41:07]  删除...
我顶 字号: 大 中 小

文章来源: http://java.xnuo.com/entry/016d86d49c1cee93244515f032fb9af1.html

“JDK1.5”(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,
这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入
 。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。

  下面我们简单介绍一下这些新特性。

  1.泛型(Generic)

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


Collection c = new ArrayList();
c.add(new Date());



  编译器会给出一个错误:



add(java.lang.String) in java.util.Collection cannot be applied to 
(java.util.Date)



  2.For-Each循环

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


void processAll(Collection c){
    for(Iterator i=c.iterator(); i.hasNext();){
        MyClass myObject = (MyClass)i.next();
        myObject.process();
    }
}



  使用For-Each循环,我们可以把代码改写成:


void processAll(Collection c){
    for (MyClass  myObject :c)
        myObject.process();
}



  这段代码要比上面清晰许多,并且避免了强制类型转换。

  3.自动装包/拆包(Autoboxing/unboxing)

  自动装包/拆包大大方便了基本类型数据和它们包装类地使用。

  自动装包:基本类型自动转为包装类.(int >> Integer)

  自动拆包:包装类自动转为基本类型.(Integer >> int)

  在JDK1.5之前,我们总是对集合不能存放基本类型而耿耿于怀,现在自动转换机制
解决了我们的问题。

int a = 3;
Collection c = new ArrayList();
c.add(a);//自动转换成Integer.

Integer b = new Integer(2);
c.add(b + 2);


  这里Integer先自动转换为int进行加法运算,然后int再次转换为Integer.

  4.枚举(Enums)

  JDK1.5加入了一个全新类型的“类”-枚举类型。为此JDK1.5引入了一个新关键字
enmu. 我们可以这样来定义一个枚举类型。
 
public enum Color
{
   Red,
   White,
   Blue
}


  然后可以这样来使用Color myColor = Color.Red.

  枚举类型还提供了两个有用的静态方法values()和valueOf(). 我们可以很方便地
使用它们,例如
for (Color c : Color.values())
            System.out.println(c);


  5.可变参数(Varargs)

  可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是
函数声明中的最后一个参数。假设我们要写一个简单的方法打印一些对象,

util.write(obj1);
util.write(obj1,obj2);
util.write(obj1,obj2,obj3);



  在JDK1.5之前,我们可以用重载来实现,但是这样就需要写很多的重载函数,显得
不是很有效。如果使用可变参数的话我们只需要一个函数就行了

public void write(Object... objs) {
   for (Object obj: objs)
      System.out.println(obj);
}


  在引入可变参数以后,Java的反射包也更加方便使用了。对于
c.getMethod("test", new Object[0]).invoke(c.newInstance(), new 
Object[0]))
,现在我们可以这样写了
c.getMethod("test").invoke(c.newInstance())
,这样的代码比原来清楚了很多。 

  6.静态导入(Static Imports)

  要使用用静态成员(方法和变量)我们必须给出提供这个方法的类。使用静态导入
可以使被导入类的所有静态变量和静态方法在当前类直接可见,使用这些静态成员无需
再给出他们的类名。

import static java.lang.Math.*;
…….
r = sin(PI * 2); //无需再写r = Math.sin(Math.PI);


  不过,过度使用这个特性也会一定程度上降低代码地可读性。
分享到:
评论

相关推荐

    jdk5.0新特性

    ### JDK 5.0新特性详解 #### 一、自动装箱与自动拆箱 在JDK 5.0中,引入了一个非常实用的功能——自动装箱和自动拆箱,这极大地方便了开发者在处理基本数据类型和它们对应的封装类之间的转换。以前,我们可能需要...

    part 10 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    JDK5.0新特性 常量 、枚举、 for each、反射

    在Java开发领域,JDK 5.0是一个重要的里程碑,引入了多项显著的新特性,极大地提升了编程效率和代码质量。本文将深入探讨其中的四个关键特性:常量、枚举、for each循环(也称为增强型for循环)以及反射。 首先,让...

    JDK 5.0.zip

    下面我们将详细探讨JDK 5.0的主要特性: 1. **类型安全的枚举(Enums)**:JDK 5.0引入了枚举类型,使得枚举成为一种独立的、类型安全的类。枚举可以包含方法和常量,增加了代码的可读性和安全性,避免了传统常量类...

    JDK5.0 新特性

    在JDK 5.0中,Java引入了一系列重要的新特性,极大地提升了开发效率和代码的可读性。这些新特性包括自动包装和解包、增强的for循环、可变参数方法、printf风格的格式化输出、枚举类型以及静态导入等。 首先,自动...

    part6 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    part5 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    JDK5.0新特性(3)——枚举

    在Java编程语言中,JDK 5.0的发布带来了一系列重要的新特性,极大地提升了开发效率和代码质量。其中,枚举(Enum)是引入的一个关键特性,它为表示固定集合中的常量提供了强大而安全的支持。这篇博客将深入探讨JDK ...

    part3 [浪曦][原创]JDK5.0新特性[风中叶老师主讲

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲[浪曦][原创]JDK5.0新特性[风中叶老师主讲[浪曦][原创]JDK5.0新特性[风中叶老师主讲

    part1 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲][浪曦][原创]JDK5.0新特性[风中叶老师主讲][浪曦][原创]JDK5.0新特性[风中叶老师主讲]

    part8 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    浪曦 - JDK5.0新特性.part2

    浪曦 - JDK5.0新特性.part2

    浪曦 - JDK5.0新特性.part3

    浪曦 - JDK5.0新特性.part3

    JDK5.0新特性 反射、枚举.rar

    `JDK5.0新特性(3)——枚举.doc`中应该会介绍如何声明枚举、枚举实例的创建、枚举的继承、枚举常量的方法以及枚举与switch语句的结合。枚举在设计模式、API设计以及表示固定集合的常量等方面都有重要作用。 再者,...

    part 7 [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part [浪曦][原创]JDK5.0新特性[风中叶老师主讲]共10 part

    JDK5.0_下载-安装-配置

    JDK5.0是Oracle公司于2004年发布的一个重要版本,引入了许多新特性,对Java编程语言做了重大改进,提升了开发效率。要下载JDK5.0,首先访问Oracle的官方网站历史版本页面,或者通过互联网上的存档链接找到该版本的...

    jdk5.0新特性实例讲解

    Java JDK 5.0,又称为JDK 1.5,是Java开发工具包的一个重要升级,它引入了大量的新特性和改进,极大地提升了Java编程的...而"jdk5.0新特征.txt"则可能包含了对所有新特性的详细描述和使用示例,是深入学习的好资源。

    JDK5.0新特性

    以上就是JDK 5.0中的一些重要新特性,这些特性极大地推动了Java语言的发展,使其在软件开发领域保持了强大的竞争力。通过学习和掌握这些特性,开发者可以编写出更加高效、健壮和易于维护的代码。

    浪曦 - JDK5.0新特性.part5.rar

    浪曦 - JDK5.0新特性.part5.rar

    浪曦 - JDK5.0新特性.part4.rar

    浪曦 - JDK5.0新特性.part4.rar

Global site tag (gtag.js) - Google Analytics