Java之——拆箱与装箱

目录

装箱

拆箱

代码展示

自动拆箱与装箱

代码展示


装箱

装箱定义:把基本类型的数据,包装到包装类中。(基本类型的数据->包装类)

基本数据类型(四类八种)

          整型:byte/short/int/long

          浮点型:float/double

          字符型:char

          布尔型:boolean

【1】构造方法:    

         ①Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。  

         ②Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。              

传递的字符串,必须是基本类

【2】静态方法:

        ①   static Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。  

        ②  static Integer valueOf(String s)  :返回保存指定的 String 的值的 Integer 对象。

拆箱

拆箱概述:在包装类中取出基本类型的数据(包装类->基本类型的数据)

成员方法: int intValue() :以 int 类型返回该 Integer 的值。

代码展示

public class Demo01Integer {
    public static void main(String[] args) {
        //装箱:把基本类型的数据,包装到包装类中。(基本类型的数据->包装类)
       
        //构造方法
        Integer in1=new Integer(1);
        //1 重写了toString方法
        System.out.println(in1);

        Integer in2=new Integer("1");
        //1
        System.out.println(in2);

        //静态方法
        Integer in3=Integer.valueOf(1);
        System.out.println(in3);

        Integer in4=Integer.valueOf("1");
        //Integer in4=Integer.valueOf("a");   //NumberFormatException 数字格式化异常
        System.out.println(in4);
        
        //拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
        int i=in1.intValue();
        System.out.println(i);
    }
}

自动拆箱与装箱

自动装箱与自动拆箱定义:由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。

代码展示

public class Demo02Auto {
    public static void main(String[] args) {

        //自动装箱:直接把int类型的整数赋值给包装类
        //自动装箱。相当于Integer i = Integer.valueOf(4);或者是Integer i=new Integer(1);
        Integer i=4;

        //自动拆箱
        //等号右边:i是包装类,无法直接参与运算,将i对象转成基本数值(自动拆箱)i.intValue() + 5;
        i=i+5;
        //加法运算完成后,再次装箱,把基本数值转成Integer对象。
        
        //ArrayList集合无法直接存储整数,可以存储Integer包装类
        ArrayList<Integer> list=new ArrayList<>();
        //自动装箱  list.add(new Integer(1));
        list.add(1);
        //自动拆箱  list.get(0).intValue();
        int a=list.get(0);
    }
}

  

猜你喜欢

转载自blog.csdn.net/wtt15100/article/details/108210201