`

java1.5 新特性

    博客分类:
  • java
 
阅读更多
"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);
不过,过度使用这个特性也会一定程度上降低代码地可读性。
分享到:
评论

相关推荐

    JAVA1.5新特性

    JAVA 1.5的新特性是Java发展史上的一个重要里程碑,这一版本引入了一系列创新特性,旨在提升编程效率、增强代码安全性并简化开发流程。以下是对JAVA 1.5新特性的详细解析: ### 1. 泛型 (Generics) #### 概述 泛型...

    java1.5新特性

    java1.5之后的新特性: 1,枚举(enum) 作用:一般用于代表一组相同类型的常用常量。 原理:语法结构与java类的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译之后实际上是...

    java1.5新特性_枚举

    java1.5新特性 枚举 问我文字大于20个字没问题吧?我曰:没问题,然后我凑了20个字~

    java1.5新特性.pdf

    Java 1.5 引入的新特性之一就是对枚举(Enumerated Types)的支持,这是对之前版本的一个重大改进,以解决从 C++ 等语言转到 Java 的程序员所抱怨的问题。在 Java 1.5 之前,虽然可以通过定义 `public static final`...

    java1.5新特性[定义].pdf

    Java 1.5 引入的新特性之一就是枚举(Enum)类型,这是对之前版本的一个重大改进,尤其是在从 C++ 等语言过渡到 Java 的开发者中受到了广泛关注。在 Java 1.5 之前,Java 缺乏对枚举类型的原生支持,导致了一些不便...

    jdk1.5新特性

    类型安全的枚举是在 Java 1.5 中引入的另一种新特性,它为枚举类型提供了更好的类型安全性和灵活性。类型安全的枚举不仅避免了使用常量接口所带来的问题,还允许为枚举类型定义方法。 **示例对比:** 传统方式下,...

    kentanvictor#STUDY#java1.5新特性之自动装箱与自动拆箱1

    //这里就是自动的装箱,将3转换成Integer类型并放到集合中自动拆箱包装类自动转为基本类型 Integer >> int面试常见题目:自动拆箱与自动装箱的问

    JDK1.5新特性

    JDK1.5新特性

    JAVA1.5安装包

    这个版本引入了大量的新特性、优化和改进,对Java编程语言有着深远的影响。让我们详细了解一下Java 1.5的主要知识点。 1. **泛型(Generics)** 泛型是Java 1.5最重要的特性之一,允许在类、接口和方法中使用类型...

    jdk1.5新特性介绍

    JDK 1.5的发布标志着Java平台的一次重大进步,通过引入一系列新特性,不仅增强了语言本身的表达能力,还提高了开发者的生产力。泛型、枚举、注解等特性至今仍是Java开发中不可或缺的重要组成部分。此外,JDK 1.5还对...

    JAVA 1.5 API 文档

    这个API文档以中文的形式提供,使得国内开发者能更方便地理解和使用Java 1.5的新特性。 在Java 1.5版本中,引入了许多重要的新特性和改进,对Java编程语言产生了深远的影响。以下是一些关键知识点: 1. **泛型...

    最新JAVA1.5中文API

    在这个"最新JAVA1.5中文API"中,开发者可以找到全面的文档,帮助理解并利用这些新特性进行编程。 首先,让我们来探讨一些Java 1.5中的关键更新: 1. **泛型(Generics)**:这是Java 1.5最显著的变化之一,允许在...

    Java1.5的新特性

    Java 1.5,也被称为Java SE 5.0,是Java发展历程中的一个重要版本,它引入了许多新特性和改进,极大地提升了编程效率和代码的可读性。以下是对这些新特性的详细解释: 1. **静态导入(Static Import)** 静态导入...

    java1.5API

    以上是Java 1.5 API中的一些核心特性。`aybook.cn_javzwapjc1230.chm`可能是包含Java 1.5 API文档的CHM(Microsoft Compiled HTML Help)文件,这种格式通常用于存放离线帮助文档。`更多电子书下载.html`可能指向...

    java1.5新特征

    Java 1.5 是一个重要的版本更新,引入了许多新特性,极大地提升了开发效率和代码质量。以下是对这些新特性的详细解释: 1. **自动装箱与拆箱**: 自动装箱是指将基本数据类型(如 int、char 等)自动转换为对应的...

    java1.5api

    Java 1.5 API,也被称为Java SE 5.0(Java Standard Edition 5.0),是Java发展历程中的一个重要里程碑,引入了许多新特性和改进,为开发者提供了更强大的工具和功能。JavaScript API虽然在此描述中一同提及,但它们...

    JAVA jdk1.5的新特性

    1.增强的for循环【foreach{}迭代数组或集合】 格式:for(变量的类型 变量名:集合变量名 ){} 注意:集合变量可以是数组或实现了... 格式:import static java.lang.Math.* 注意:这时候的导入就需要加类名了

Global site tag (gtag.js) - Google Analytics