首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

装箱跟拆箱解析

2012-09-03 
装箱和拆箱解析Java中,数据类型分为基本数据和类类型(引用数据类型),但是我们要注意的是基本数据类型的数

装箱和拆箱解析
    Java中,数据类型分为基本数据和类类型(引用数据类型),但是我们要注意的是基本数据类型的数据不是对象,没有方法可调用,类类型是对象,可以调用相应的方法,比如toString()、hashCode()、equals()等等方法。;可是我们能否将基本数据类型转换为类类型?请看下面这张表:
public class Test1{public static void main (String[] agrs){int i=10;Integer j=new Integer(i); //手动装箱操作 int k=j.intValue();//手动拆箱操作System.out.println(k*k);}}
打印输出100
    但JDK1.5之后,就不需要手动装/拆箱,如下例子:

public class Test2{public static void main (String[] agrs){int i=10Integer j=i;int k=j;//自动调用intValue()方法System.out.println(++k);}}

打印输出:11
在进行装/拆箱时候,下面一点大家需要注意:
字符串和相应基本数据类型的转换,特别注意String和int之间的转换;
public class test3{public static void main (String[] args){String str="1500";try{int i=Integer.parseInt(str);System.out.println(++i);}catch (Exception e){ e.printStackTrace(); //打印异常信息}}}

打印输出:1501
如果在上述方法中str="15er00";则在调用parseInt方法时候会抛出NumberFormatException异常
参数:s - 包含要解析的 int 表示形式的 String。
返回:用十进制参数表示的整数值。
抛出:NumberFormatException - 如果字符串不包含可解析的整数。
  总结在包装类中将String转换为包装类所对应的基本数据类型的方法如下,所有的方法都将抛出NumberFormatException异常,需要在调用时候使用try ..catch 进行捕获


   我们从上面的表格可看到,每个数据类型都对应有一个包装类,这样只要给出了一个相应数据类型,我们就能使用包装类来对数据进行转换,从而调用相应包装类的方法:这样一个过程就是装箱;如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。
   而拆箱就是与装箱相反,把包装类的对象重新转化为基本数据类型;

下面例子就是手动装箱过程:
public class Test1{public static void main (String[] agrs){int i=10;Integer j=new Integer(i); //手动装箱操作                int k=j.intValue();//手动拆箱操作System.out.println(k*k);}}


打印输出100
    但JDK1.5之后,就不需要手动装/拆箱,如下例子:
public class Test2{public static void main (String[] agrs){int i=10Integer j=i;int k=j;//自动调用intValue()方法System.out.println(++k);}}

打印输出:11

在进行装/拆箱时候,下面一点大家需要注意:
字符串和相应基本数据类型的转换,特别注意String和int之间的转换;
public class test3{public static void main (String[] args){String str="1500";try{int i=Integer.parseInt(str);System.out.println(++i);}catch (Exception e){ e.printStackTrace(); //打印异常信息}}}

打印输出:1501
如果在上述方法中str="15er00";则在调用parseInt方法时候会抛出NumberFormatException异常
参数:s - 包含要解析的 int 表示形式的 String。
返回:用十进制参数表示的整数值。
抛出:NumberFormatException - 如果字符串不包含可解析的整数。
总结在包装类中将String转换为包装类所对应的基本数据类型的方法如下,所有的方法都将抛出NumberFormatException异常,需要在调用时候使用try ..catch 进行捕获[size=medium][/size]

热点排行