J2SE 5.0实例---原生类型的autoboxing和auto-unboxing

j2se

原生类型的autoboxing和auto-unboxing
我们知道,在Java中,int,long等原生类型不是一个继承自Object的类,所以相应的,有很多操作我们都不能利用原生类型操作,比如想要把一个整数放入到一个集合中,我们必须首先创建一个Integer对象,然后再将这个对象放入到集合中。当我们从集合中取数的时候,取出来的是一个Integer对象,因此不能直接对它使用加减乘除等运算符,而是必须用Integer.intValue()取到相应的值才可以,这样的过程称之为boxing和unboxing。

J2SE5.0支持autoboxing和auto-unboxing,也就是说我们以后不需要再手动地做这些boxing和unboxing操作了,java语言会替我们完成。具体可以参照下面的示例:

List<Integer> intList=new ArrayList<Integer>();

intList.add(2);

intList.add(new Integer(5));

int i=3+intList.get(0);//i=5

int j=3+intList.get(1); //j=8

从这一段程序中我们可以看到,autoboxing和auto-unboxing为我们省掉了很多不必要的工作。

时间: 2024-08-18 05:13:28

J2SE 5.0实例---原生类型的autoboxing和auto-unboxing的相关文章

J2SE 5.0实例---枚举

j2se 枚举在过去,我们必须用整型常数代替枚举,随着J2SE 5.0的发布,这样的方法终于一去不复返了. 一个简单的枚举类型定义如下: public enum Weather {      SUNNY,RAINY,CLOUDY } 枚举可以用在switch语句中: Weather weather=Weather.CLOUDY;      switch(weather)      {      case SUNNY:             System.out.println("It's su

J2SE 5.0实例---静态引入

j2se|静态 静态引入(static import) 在过去我们要使用其他包中某类的静态变量,一般都要在前面加上对应的类名: double r = Math.cos(Math.PI * theta); 使用静态引入,我们可以把前面的类名去掉,静态引入的语句是这样的: import static java.lang.Math.PI; 必须注意到这里最后不是到类Math,而是直接到了定义的变量PI. 静态引入不只对静态变量,也可以针对静态方法.此外还可以使用*,如下面所示: import stat

在Eclipse 3.1中体验J2SE 5.0的新特性: 第一部分 :枚举类型

J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步. J2SE 5.0提供了很多令人激动的特性.这些特性包括范型(generics)的支持, 枚举类型 (enumeration)的支持, 元数据(metadata)的支持, 自动拆箱(unboxing)/装箱 (autoboxing), 可变个数参数(varargs), 静态导入(static imports), 以及新的线程架 构(Thread framework)

在Eclipse 3.1中体验J2SE 5.0的新特性 第二部分 :注释类型

J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步. J2SE 5.0提供了很多令人激动的特性.这些特性包括范型(generics)的支持, 枚举类 型(enumeration)的支持, 元数据(metadata)的支持, 自动拆箱(unboxing)/装箱 (autoboxing), 可变个数参数(varargs), 静态导入(static imports), 以及新的线程架 构(Thread framework)

J2SE 5.0专题 之 语言特性

j2se J2SE 5.0专题 之 语言特性                         本文作者: 高宇翔(大胃) 1.1.        背景J2SE(TM) 5.0正式发布至今已超过3个月的时间了,就在前不久,大概是在两周之前,Sun又发布了更新过的JDK 5.0 Update 1,改掉了一些第一个版本中出现的bug. 由于Java社群等待这一从1.4向5.0版本升级已经有相当长的一段时间,大家都很关心5.0中有哪些值得关注的变化,于是blog的相关信息满天飞,我也兴冲冲地在自己的bl

J2SE5.0实例---注释(annotation)

j2se 注释(annotation) J2SE 5.0通过引入注释(Annotation)的概念添加了对元数据的支持. 一个@xxx形式的注释可以当成一个修饰符来使用,它可以放在任何一个修饰符可以出现的地方.public,static,final都是java语言的修饰符,注释可以写在它们可以出现的任何地方. 举个例子,可以看下面一段代码: public class AnnotationExample {   public @Override int hashCode() {      retu

在Eclipse 3.1中体验J2SE 5.0的新特性: 第三部分 :范型

J2SE 5.0 (Tiger)的发布是Java语言发展史上的一个重要的里程碑, 是迄今为止在 Java 编程方面所取得的最大进步. J2SE 5.0提供了很多令人激动的特性.这些特性包括范型(generics)的支持, 枚举类 型(enumeration)的支持, 元数据(metadata)的支持, 自动拆箱(unboxing)/装箱 (autoboxing), 可变个数参数(varargs), 静态导入(static imports), 以及新的线程架 构(Thread framework)

[J2SE 5.0专题][2.7]注解

j2se 注解(Annotations)在我看来是J2SE 5.0中比较重大的新特性.将来的EJB 3.0规范将会全面利用该特性来简化Session Bean. Message-Driven Bean和EntityBean的定义和实现. Java的注解或多或少也是受了.NET的影响.这不是说Java本来没有注解,以前的诸如JavaDoc的标注,尤其@deprecated,都是注解,只不过这一次的更新将注解推到了Java历史上前所未有的高度.通过注解,我们可以实现原先相对复杂的高级功能. 先看一个

[J2SE 5.0专题][2.5]可变长度参数

j2se 顾名思义,可变长度参数就是指在方法的参数体中,只要定义恰当,我们可以使用任意数量的参数,类似于使用对象数组.在J2SE 5.0中,一个新的语法被引入,就是在参数类型名称后面加上 ... ,表示该方法可以接受多个该类型的参数.需要说明的是可变长度参数必须放在参数列表的最后,且一个方法只能包含一个这样的参数. 需要注意的是,这个语法只是在声明一个方法的时候管用,真正当我们具体实现这个方法时,我们通常都不这么写,因为这样写的话在方法体内该参数仅仅被当作一个Object,并不能通过这个Obje