JDK1.5(JDK5.0)
Java2标准版(Java 2 Platform, Standard Edition, J2SE)1.5版本更新不同于以往,它带来了很多里程碑式的革新,SUN将其绰号取名为“虎”。这一次的变革将是Java诞生以来从未有过的,它给我们带来了耳目一新的感觉。下面我们就来欣赏一下其中的部分典型变化:
比较JDK版本,JDK 1.5中新增的语言特性:
1.枚举(增加了一个关键字enum);
2.变参(方法参数数量可以不固定多少);
3.泛型;
4.自动拆装箱(基本类型与包装类型可以混用);
5.foreach循环(方法地用于遍历数组和集合);
6.静态导入(可以在使用静方法前不加类名);
7.注释(采用@前缀,这个基本上是为了简化J2EE而准备的,在JavaEE5中的EJB3、JPA等中随处可以看到它的身影)。
在JVM、基本类库、SDK工具和硬件平台支持上都有很多的提高,这个JDK版本的出现可以说是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.*”即可。这样的引用方式对于枚举也同样有效。
分享到:
相关推荐
7. **变量注解**:注解(Annotation)是JDK 1.5新增的一个重要特性,用于向编译器、JVM或第三方工具提供元数据,便于实现编译时检查、运行时处理等功能。 8. **变长参数**:varargs特性允许方法接受可变数量的参数...
总之,JDK1.5是Java发展历程中的一个里程碑,它的多项创新特性为Java开发者带来了更高的生产力和更健壮的代码。通过深入学习和掌握这些知识点,开发者能够更好地驾驭Java语言,提升软件开发的效率和质量。
也称为foreach循环,这是JDK 1.5新增的一种简化遍历集合或数组的方式。它使得遍历元素的过程更为简洁,无需使用索引和迭代器。 ### 5. **变量注解(Annotations)** 注解是一种元数据,用于提供程序信息,不参与...
一、语言特性 1. 泛型(Generics):这是JDK 1.5最显著的变化之一,它允许开发者在定义类、接口和集合时指定类型参数,增强了代码的类型安全性,减少了运行时类型异常的可能性。 2. 自动装箱与拆箱:自动装箱使得...
类型安全的枚举是JDK 1.5中新增的一个特性,用于定义一组固定的常量值,并确保这些值在编译时是类型安全的。与传统的枚举相比,类型安全的枚举提供了更多的灵活性和安全性。 **优点**: 1. **类型安全**:确保枚举...
在JDK 1.5和1.6这两个版本中,Java语言引入了一系列重大特性,极大地提高了开发效率和代码质量。这些特性使得Java更加现代化,更适应面向对象编程的需求。以下是这些特性的详细介绍: 1. 泛型(Generic):泛型是...
**JDK 1.5,也被称为Java SE 5.0,是Java发展历程中的一个重要...这些特性使得JDK 1.5成为了Java发展历程中的一个关键版本,极大地推动了Java编程语言的发展。了解并熟练掌握这些特性对于现代Java开发者来说至关重要。
在这个版本中,Java进行了许多现代化的改革,旨在提高开发效率,增强类型安全,并引入了一些新的语言特性。 1. **泛型(Generics)** 泛型是JDK5引入的一项重大改进,它允许开发者在类、接口和集合中定义类型参数...
JDK(Java Development Kit)是Oracle公司发布的用于开发和运行Java应用程序的工具集,而1.5版本是一个关键的里程碑,引入了许多创新特性,极大地提升了Java编程的效率和灵活性。 一、语言增强 1. **泛型(Generics...
Java JDK 1.5,全称为Java Development Kit 1.5,是Java编程语言的一个重要版本,由Sun Microsystems(后被Oracle公司收购)在2004年发布。这个版本引入了许多新特性,大大增强了Java语言的功能和效率,对开发者来说...
这个版本引入了许多重要的新特性和改进,对Java编程语言和平台产生了深远的影响。64位版本的JDK是为了在64位操作系统上运行,它能够更好地利用内存资源,处理更大规模的数据和应用程序。 1. **泛型(Generics)**:...
本资源提供了三个主流的JDK版本,分别是1.5、1.6和1.8,它们在Java发展历程中占据了重要位置。 1. **JDK 1.5(也称为Java 5.0)** JDK 1.5于2004年发布,引入了许多重要的新特性,包括: - **泛型(Generics)**...
泛型是Java编程语言中的一个关键特性,它允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。通过泛型,开发者可以创建可重复使用的数据结构和算法,同时保证类型安全,减少运行时...
Java JDK(Java Development Kit)是Java编程语言的软件开发工具包,它包含了编译、调试、运行Java程序所需的所有...对于其他如JDK1.5、1.6、1.7版本的需求,虽然没有直接提供,但可以通过搜索或访问相关资源站点获取。
泛型是JDK 1.5最显著的新增特性之一,它允许在类、接口和方法中使用类型参数,增强了代码的类型安全性和重用性。通过泛型,开发者可以创建可适应多种数据类型的容器,避免了强制类型转换,减少了运行时错误。 2. *...
本Java帮助文档针对的是JDK 1.5版本,这个版本在Java的历史上具有里程碑意义,因为它引入了许多重要的新特性,增强了语言的表达力和效率。 1. **泛型(Generics)**:JDK 1.5首次引入了泛型,使得在编写代码时可以...
自1995年首次发布以来,JDK已经经历了多次重要的更新与迭代,从最初的JDK 1.0到现在的JDK 17及以后的版本,每一次版本更新都伴随着新特性的加入和技术的改进。下面将详细介绍从JDK 1.4到1.8这四个主要版本的特点和...