`
zhengxiangbin2008
  • 浏览: 7829 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java基础(十二)jdk1.5 新特性

 
阅读更多

 

jdk5.0中出现的新特性 

• 泛型(Generics)  

• 增强的“for”循环(Enhanced For loop)  

• 自动装箱/自动拆箱(Autoboxing/unboxing)  

• 类型安全的枚举(Type safe enums)  

• 静态导入(Static import)  

• 可变参数(Var args)  

 

(一)泛型

 

泛型是JDK1.5中一个最重要的特征。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能。

1) 简单泛型类的定义

 

public class Pair<T> {
	private T first;
	private T second;
	
	public Pair()
	{
		first = null;
		second = null;
	}
	public Pair(T first, T second) 
	{
		this.first = first;
		this.second = second;
	}
	public T getFirst() {
		return first;
	}
	public void setFirst(T first) {
		this.first = first;
	}
	public T getSecond() {
		return second;
	}
	public void setSecond(T second) {
		this.second = second;
	}
}

 Pair类引入了一个类型变量T,用<>括起来,并放在类名的后面。泛型类可以有多个类型变量。例如:

 

public class Pair<T,U>{}

类定义中的类型变量指定方法的返回类型以及域和局部变量的类型。

在java库中,使用变量E表示集合的元素类型,K和V分别表示表的关键字与值的类型。T表示任意类型。

2)泛型方法

 

public class ArrayAlg {

	public static <T> T getMiddle(T[] a)
	{
		return a[a.length /2];
	}
}

 3) 限制泛型可用类型

 

 

在定义泛型类别时,预设可以使用任何的类型来实例化泛型类型中的类型,但是如果想要限制使用泛型类别时,只能用某个特定类型或者是其子类型才能实例化该类型时,可以在定义类型时,使用extends关键字指定这个类型必须是继承某个类,或者实现某个接口

public static <T extends Comparable> T min(T[] a)

 

当没有指定泛型继承的类型或接口时,默认使用T extends Object,所以默认情况下任何类型都可以作为参数传入

4)通配符类型

 

現在您有這麼一個需求,您希望有一個參考名称foo可以接受所有下面的实例 

foo = new GenericFoo<ArrayList>(); 

foo = new GenericFoo<LinkedList>(); 

简单的说,实例化类型持有者时,它必須是实现List的类别或其子类别,要定义这样一个名称,您可以使用 ‘?’ 通配字元,并使用“extends”关键字限定类型持有者的型态 

 

GenericFoo<? extends List> foo = null;

 

使用<?>或是<? extends SomeClass>的声明方式,意味著您只能通过该名称來取得所参考实例的信息,或者是移除某些信息,但不能增加它的信息,因为只知道当中放置的是SomeClass的子类,但不确定是什么类的实例,编译器不让您加入信息,理由是,如果可以加入信息的話,那么您就得記得取回的实例是什么类型,

然后转换为原來的类型方可进行操作,这就失去了使用泛型的意义。

 

 

 

(二)For-Each循环

 

for(type element : array) { 

   System.out.println(element).... 

}

 

 

 

(三)自动装箱/拆箱

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

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

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

Integer 类有一个缓存,它会缓存介于-128~127之间的整数。

 

(四)枚举

JDK1.5加入了一个全新类型的“类”-枚举类型。为此 JDK1.5引入了一个新关键字enum.  我们可以这样来定 义一个枚举类型  

 

public  enum  Color 

    Red, 

    White, 

    Blue 

 

 

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

 

枚举类型还提供了两个有用的静态方法values()和valueOf().

 

当您使用“enum”定义 枚举类型时,实质上您定义出來的类型继承自 java.lang.Enum 类型,而每个枚举

的成员其实就是您定义的枚举类型的一個实例(Instance),他们都被预设为 final,所以您无法改变他们,他

们也是 static 成員,所以您可以通过类型名称直接使用他们,当然最重要的,它們都是公开的(public)。 

 

 

 

(五)静态导入

 

要使用静态成员(方法和变量)我们必须给出提供这个静态成员的类。使用静态导入可以使被导入类的所有静态变量和静态

方法在当前类直接可见,使用这些静态成员无需再给出他们的类名

 

a)  import static com.shengsiyuan.common.Common.Age; 

b)  import static com.shengsiyuan.common.Common.output; 

 

(六)可变参数

可变参数使程序员可以声明一个接受可变数目参数的方法。注意,可变参数必须是方法声明中的最后一个参数  

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    jdk1.5新特性

    转载 jdk1.5的一些新特性,希望能帮助大家!

    JDK1.5新特性

    JDK1.5新特性

    详细描述jdk1.5新特性

    jdk1.5新特性 泛类型和泛型方法是Java5.0 中的新特性。一种泛类型用一个或多个泛型变量定义,可以有一个或多个,泛型变量做参数占位符或做返回值 的方法。

    JAVA jdk1.5的新特性

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

    jdk1.5 tiger java5 新特性

    jdk1.5 tiger java5 新特性

    jdk1.5新特性介绍

    java sdk1.5 新特性 JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和...

    jdk1.5新特性关于动态参数,泛型等

    Java的泛型和动态参数,以及for循环的使用Connections类的详解,list,set的详解

    jdk1.5 的新特性

    jdk1.5的新特性,java基础加强部分

    Java JDK1.5 生产消费者模式解决方案

    Java JDK1.5后新特性,用Lock和Condtion对象解决线程安全问题,提高了效率。

    jdk1.5后的特性.rar

    jdk1.5的以后的技术,例如泛型,枚举,注释的基本使用方法,给刚学习java的朋友一些不错的介绍

    JDK1.5中增强for循环

    JDK1.5新特性中的最重要的一点。让你彻底明白增强for循环的强大和方便

    jdk1.5的新特性

    Java 5.0发布了,许多人都将开始使用这个JDK版本的一些新增特性。从增强的for循环到诸如泛型(generic)之类更复杂的特性,都将很快出现在您所编写的代码中。我们刚刚完成了一个基于Java 5.0的大型任务,而本文就是要...

    JDK1.5、1.6、1.7新特性.doc

    JDK1.5、1.6、1.7新特性,详细介绍了JDK1.5 1.6和1.7的最新特性.

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    今天,JDK1.5終於內建泛型特性,不僅編譯器不再需要 任何外力(外掛附件)的幫助,整個 Java標準程式庫也被翻新(retrofit),許多 角落針對泛型做了改寫。 讓我們把帶有「參數化型別」(parameterized types)的 ...

    jdk1.5/1.6/1.7新特性

    jdk1.5 jdk1.6 jdk1.7新特性总结!很好的资源不要错过哦!

    JDK 1.5新特性---枚举类型

    Enum是Sun全新引进的一个关键字,看起来很象是特殊的class,它也可以有自己的变量,可以定义自己的方法,可以实现一个或者多个接口。在声明一个enum类型时,应该注意到enum类型有如下的一些特征:

    JDK7新特性(完整篇)

    1.1 JDK7新特性&lt;一&gt;概述 ....1.5 JDK7新特性&lt;五&gt; fork/join 框架 . . . . . 1.6 JDK7新特性&lt;六&gt; 监听文件系统的更改 1.7 JDK7新特性&lt;七&gt; 遍历文件树 . . . . . . . 1.8 JDK7新特性&lt;八&gt;异步io/AIO . . . . . . . .

    JDK1.5-1.6-1.7之新特性总结-1

    Jdk1.5、1.6、1.7之间的新特性,很详细。好东西,值得下载

    java基础知识加强

    java基础加强,JDK1.5新特性介绍,需要的朋友可以看看哦

    Java JDK1.5、1.6、1.7新特性整理

    主要介绍了Java JDK1.5、1.6、1.7新特性整理,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics