自动装箱和自动拆箱

装箱:把基本数据类型 包装到包装类中(基本类型的数据-->包装类)
    构造方法:
        Integer(int value)构造一个新分配的Integer对象,它表示指定的int值
        Integer(String s)构造一个新分配的integer对象,它表示Sting参数所指定的int值
            传递的字符串 必须是基本类型的字符串 否则会抛出异常 "100" 正确 "a"抛异常
    静态方法:
        static Integer valueOf(int i)返回一个表示指定的int值的Integer实例
        static Integer valueOf(String s)返回一个表示指定的String值的Integer对象

拆箱:在包装类中取出基本类型的数据(包装类-->基本类型的数据)
    成员方法:
        int intValue() 以int类型返回该Integer的值

代码:

public class demo1装箱和拆箱 {
    public static void main(String[] args) {
        //装箱:
        Integer in1 = new Integer(1);
        System.out.println(in1);//重写了toString方法

        Integer in2 = new Integer("2");
        System.out.println(in2);//重写了toString方法

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

        Integer in4 = Integer.valueOf("4");
        System.out.println(in4);

//        Integer in5 = Integer.valueOf("a");//NumberFormatException: For input string: "a"  -->数字格式化异常
//        System.out.println(in5);
        //拆箱
        int i = in1.intValue();
        System.out.println(i);
    }
}

自动装箱和拆箱:
基本数据类型的数据和包装类之间可以自动的相互转换
JDK1.5之后自动出现的新特性

public class demo2自动装箱和拆箱 {
    public static void main(String[] args) {
        /*
        自动装箱:直接吧int类型的整数赋值给包装类
        Integer in = 1;-->Integer in1 = new Integer(1);
         */
        Integer in = 1;
        System.out.println(in);
        /*
        自动拆箱:in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,参与运算
         */
        in = in+2;
        System.out.println(in);

        //ArrayList集合无法直接存储整数,可以存储Integer包装类
        ArrayList list = new ArrayList<>();
        list.add(1);//自动装箱 list.add(new Integer(1));

        Integer a = list.get(0);//自动拆箱 list.get(0).intValue();
        System.out.println(a);

    }
}

基本类型与字符串之间的转换
基本类型-->字符串
1.基本类型数据的值+””最简单的方式(工作中常用)
2.使用包装类中的静态方法
static string toString(int i)返回一个表示指定整数的 String对象。
3.使用String类中的静态方法
static string valueOf(int i)返回int 参数的字符串表示形式。
字符串-->基本类型
使用包装类的静态方法parseXX(”字符串")Integer类:static int parseInt(String s)
Double类:static double parseDouble(String s)

public class demo3基本数据类型和字符串的相互转换 {
    public static void main(String[] args) {

        String s1=100+"200";
        System.out.println(s1);//常用,最简单
        String s2 = Integer.toString(100);
        System.out.println(s2+200);
        String s3= String.valueOf(100);
        System.out.println(s3+200);
//        ===========================================
        int i = Integer.parseInt("100");
        System.out.println(i+200);
    }
}

你可能感兴趣的:(自动装箱和自动拆箱)