首页 > 编程语言 > 详细

Java基础知识强化67:基本类型包装类之JDK5新特性自动装箱和拆箱

时间:2015-09-24 20:59:42      阅读:268      评论:0      收藏:0      [点我收藏+]

1. JDK1.5以后,简化了定义方式。

(1)Integer  x = new  Integer(4);可以直接写成如下:

        Integer  x = 4 ;//自动装箱,通过valueOf方法

(2)x = x+5;//自动拆箱。通过intValue方法

2. 需要注意:

(1)在使用时候,Integer  x = null ;上面的代码就会出现NullPointerException。

 

3. 案例演示:

 1 package cn.itcast_05;
 2 
 3 /*
 4  * JDK5的新特性
 5  * 自动装箱:把基本类型转换为包装类类型
 6  * 自动拆箱:把包装类类型转换为基本类型
 7  * 
 8  * 注意一个小问题:
 9  *         在使用时,Integer  x = null;代码就会出现NullPointerException。
10  *         建议先判断是否为null,然后再使用。
11  */
12 public class IntegerDemo {
13     public static void main(String[] args) {
14         // 定义了一个int类型的包装类类型变量i
15         // Integer i = new Integer(100);
16         Integer ii = 100;
17         ii += 200;
18         System.out.println("ii:" + ii);
19 
20         // 通过反编译后的代码
21         // Integer ii = Integer.valueOf(100); //自动装箱
22         // ii = Integer.valueOf(ii.intValue() + 200); //自动拆箱,再自动装箱
23         // System.out.println((new StringBuilder("ii:")).append(ii).toString());
24 
25         //Integer iii = null;
26         // NullPointerException
27         if (iii != null) {
28             iii += 1000;
29             System.out.println(iii);
30         }
31     }
32 }

注意:

(1)Integer  ii = 100;                    等价于:

        Integer ii = Integer.valueOf(100);

通过反编译.class文件知道,这里自动jvm执行这个代码(jvm执行.class文件)时候,实现了自动装箱。

(2) ii += 200;                               等价于:

         ii = Integer.valueOf(ii.intValue() + 200);  //自动拆箱,再自动装箱

(3)System.out.println("ii:" + ii);     等价于:

System.out.println((new StringBuilder("ii:")).append(ii).toString());

内部使用StringBuilder进行字符串拼接。

Java基础知识强化67:基本类型包装类之JDK5新特性自动装箱和拆箱

原文:http://www.cnblogs.com/hebao0514/p/4836348.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!