JDK1.5新特性介绍

“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);

时间: 2024-11-08 19:54:00

JDK1.5新特性介绍的相关文章

Oracle10g安装升级以及新特性介绍

oracle 这部分内容是以前培训时写的课件,现在共享出来给大家参考.  Oracle10g安装与升级之一 这是以前培训时做的一个关于Oracle10g安装升级及新特性介绍的主题,现在拿出来给大家参考... Oracle10g安装与升级之二 关于Oracle10g安装升级及新特性介绍第二部分... Oracle10g安装与升级之三 关于Oracle10g安装升级及新特性介绍第三部分... Oracle10g安装与升级之四 关于Oracle10g安装升级及新特性介绍第四部分...

ES6中非常实用的新特性介绍_javascript技巧

ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前

jdk1.5新特性5之枚举之枚举类型的应用

  一 简单应用 package cn.xy.Enum; public enum TrafficLamp {  RED,GREEN,YELLOW; } TrafficLamp red = TrafficLamp.RED; System.out.println(red); System.out.println(red.name()); System.out.println(red.ordinal()); System.out.println(TrafficLamp.valueOf("YELLOW&

久经考验的全栈云平台:Apsara Stack Enterprise 新特性介绍

摘要:本文的整理自2017云栖大会-南京峰会上阿里云专有云高级专家谢宁的分享讲义,讲义首先介绍了企业级云架构的发展趋势.政务云平台的特征.并介绍了阿里云专有云平台的产品全景图,并对于政务云的设计架构以及Apsara Stack Enterprise 的新特性进行了介绍. 在2017云栖大会-南京峰会上,阿里云专有云高级专家谢宁做了题为<Apsara Stack Enterprise 新特性介绍>的分享.在分享中谢宁分享了目前企业级云架构的发展趋势,目前新应用互联网化,传统核心应用开始逐渐改造,

**关于mysql5.7版本新特性介绍 ------数据类型 JSON**

关于mysql5.7版本新特性介绍 ------数据类型 JSON 测试环境: Win10.mysql 5.7.14 内容简介:随着mysql5.7版本的到来,大家对其的热情也越来越高涨,身为mysql圈子里的一员,我本身也对mysql5.7的一些新特性有所了解,通过学习了解到了很多新的特性,今天给大家介绍一下它在灵活性方面的一个新的功能:提供对JSON的支持 JSON介绍 首先介绍一下什么是JSON: > JSON(JavaScript Object Notation, JS 对象标记) 是一

JDK1.5新特性一览

"JDK1.5"(开发代号猛虎)的一个重要主题就是通过新增一些特性来简化开发,这些特性包括泛型,for-each 循环,自动装包/拆包,枚举,可变参数, 静态导入 .使用这些特性有助于我们编写更加清晰,精悍,安全的代码. 下面我们简单介绍一下这些新特性. 1.泛型(Generic) C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能.一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不对他们进行强制得类型转换.猛虎引入了泛型,它允许指

Informix 11.5新特性介绍:第1部分

Informix数据库目前最新的版本是11.5,从Informix 9.Informix 10到Informix 11.5,在数据库性能.数据库管理及应用开发等方面都有了很大的提高,而且推出了很多非常有用的新特性.通过对这些特性的使用,可以大大提高数据库性能.增强数据库可管理性及应用开发的灵活性.我们这里,给大家介绍其中的一些特性,希望对大家能有所帮助. 数据库管理方面的一些实用特性 使用可配置的页面大小 我们知道,在Informix 中,数据存储的最基本的单位是页,在Informix 10 版

JSR 286 Portlet的新特性,第1部分: Portlet 2.0新特性介绍

关于本系列 本系列文章专门针对具有 JSR 168 Portlet 开发基础,并且想了解 JSR 286 Portlet 新特性和开发流程的开发人 员.在学习完本系列后,您将了解相对于 JSR 168 Portlet,JSR 286 Portlet 究竟提供了哪些增强功能, 以及这些新增特性在实际开发 中的应用. 第 1 部分将简单回顾 JSR 168 Portlet, 并列出了 JSR 286 Portlet 的新增内容. 第 2 部分和第 3 部分将 通过在 Apache Pluto 2.0

Ruby on Rails 2.0的新特性介绍

万众瞩目的Ruby on Rails 2.0已经发布了,Rails框架在2004年诞生以来,一直保持着相当快的版本 升级速度:2005年发布了Rails1.0版本,2006年初发布Rails1.1版本,2007年初发布Rails1.2版本,而还 没有等到2008年,在2007年圣诞前夕的12月6日,Rails2.0已经发布. Rails框架每个大的版本升级都给我们带来了相当多的新功能,新惊喜.Rails1.0带给我们完善的单元 测试和集成测试:Rails1.1带给我们DataBase Migra