装箱和拆箱

包装类

包装类是对基本数据类型的扩展

装箱:基本类型 -> 包装类型 。 反之为拆箱

JDK5之后为自动装箱和拆箱

装箱底层调用的是 valueOf方法

package leetcode0606.wrapper;

public class Integer01 {
    public static void main(String[] args) {
        // jdk5之前 手动装箱
        // int -> Integer
        int n1 = 100;
        Integer integer = Integer.valueOf(n1);
        Integer integer1 = new Integer(n1);
        // 手动拆箱
        // Integer -> int
        int i = integer.intValue();
        // jdk5之后 自动装箱和拆箱
        int n2 = 200;
        //
        Integer integer2 = n2; // 底层先调用 valueOf 然后在new Integer
        //
        int n3 = integer2;  // 底层调用 intValue
    }
}

测试:
 

package leetcode0606.wrapper;

public class Test02 {
    public static void main(String[] args) {
        Double d = 100d;
        Float f = 1.5f;

        Object obj1 = true ? new Integer(1) : new Double(1.0);  // 整条语句是一个整条,那么double的优先级更高

        System.out.println(obj1);  // 1.0

        Object obj2;
        if(true){
            obj2 = new Integer(1);
        }else {
            obj2 = new Float(1.0);
        }

        System.out.println(obj2);  //  1

    }
}

包装类方法: String <--> Integer

package leetcode0606.wrapper;

public class wrapper_String {
    public static void main(String[] args) {
        // 包装类 -> String
        Integer i = 100;
        //方式1
        String str1 = i + "";  // i 本身不变,而是产生了一个新的字符串
        //方式2
        String str2 = i.toString();
        //方式3
        String str3 = String.valueOf(i);
        // String -> 包装类
        //方式1
        String str4 = "12345";
        Integer integer3 = Integer.parseInt(str4); // 自动装箱
        //方式2
        Integer integer = new Integer(str4);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值