java中的装箱和拆箱

java中的装箱和拆箱

1. 什么是装箱和拆箱
Java中的数据类型项由8大基本数据类型和引用数据类型,其中基本数据类型存储在栈中,而引用类型的数据则在栈中存储了一个地址,引用类型的数据则存储在堆中;(这里需要注意的是这里的堆和数据结构中的堆没有任何关系,我们可以把堆看作是一个池)

而所谓装箱就是把基本数据类型存储在堆中,所以要把他变成引用类型;反过来所谓拆箱,就是把引用类型中的数据放到栈中,要把它变成基本数据类型。

Java中给我们提供很多的包装类,可以参考帮助文档学习:
java JdkAPI下载

小案例:

package com.iobox.dem01;

public class Test {
    public static void main(String[] args) {
        //基本类型;
        int num1=18;
        //装箱,基本数据类型转换为引用数据类型。
        //使用Integer类创建对象
        System.out.println("装箱:");
        Integer integer1=new Integer(num1);
        Integer integer2=Integer.valueOf(num1);
        System.out.println(integer1);
        System.out.println(integer2);

        //类型转换,拆箱:引用类型转换为基本类型
        System.out.println("拆箱:");
        Integer integer4=new Integer(100);
        int num2=integer4.intValue();
        System.out.println(num2);

        //jdk1.5之后,自动提供装箱和拆箱
        int num3=120;
        //自动装箱
        Integer interger5=num3;
        System.out.println("自动装箱:"+interger5);
        System.out.println(interger5.getClass());
        //自动拆箱
        int num4=interger5;
        System.out.println("自动拆箱:"+num4);
    }
}

2. 基本数据类型和字符串之间的转换

  • 基本数据类型转化为string数据类型,可以使用 + 号;也可以使用Integer类中的toString()方法;
  • 字符串型转换为基本数据类型,使用Integer.parsXXX()
  • boolean字符串形式转成基本数据类型,即"true"—>true ,其中只要是 非"true"那就转化false;

案例:

package com.iobox.dem01;

public class Test01 {
    public static void main(String[] args) {
        //1基本数据类型转换为string数据类型
        int num1=124;
        //1.1使用+号
        String s1=num1+"";
        System.out.println(s1);
        //1.2使用Integer类中的toString()方法
        String s2=Integer.toString(num1,16);//16表示16进制
        System.out.println(s2);

        //2.字符串转成基本数据类型
        String str="150";
        //使用Integer.parsXXX()
        int n1=Integer.parseInt(str);
        System.out.println(n1);

        //boolean字符串形式转成基本数据类型,"true"--->true  || 非"true"-->false
        String str2="true";
        boolean b1= Boolean.parseBoolean(str2);
        System.out.println(b1);
    }
}

你可能感兴趣的:(javaSE,java,装箱,拆箱,java后端)