您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页拆箱和装箱及包装类方法

拆箱和装箱及包装类方法

来源:化拓教育网

 1.包装类型和String类型的相互转化

以Integer 和String转化为例

public class WrapperType {
    public static void main(String[] args) {
        //包装类Integer -> String 转化
        Integer n = 100;
        //方式一
        String n1 = n+"";//相当于重新创建一个对象 原来n的值不改变

        //方式二
        String n2 = Integer.toString(n);

        //方式三
        String n3 = String.valueOf(n);

        //将String类 转化成 包装类Integer
        //方式1
        Integer n4 = Integer.parseInt(n2);

        //方式2 直接通过构造器创建一个对象进行转化
        Integer n5 = new Integer(n3);
        /*
            public Integer(String s) throws NumberFormatException {
            this.value = parseInt(s, 10);
    }
         */
        
    }
}

一些常用方法

 

 如果我们自动装箱一 j 和 k 两个Integer 对象

Integer j = 1;

Integer k = 1; 

System.out.println(j == k)    输出什么结果?

 

    public static Integer valueOf(int i) {
        if (i >= IntegerCache.low && i <= IntegerCache.high)
            return IntegerCache.cache[i + (-IntegerCache.low)];
        return new Integer(i);
    }

看源码可得知它给定了一个最大和最小值,在此值范围内都是直接返回数值,不会再创建对象

所以 结果为true( -128  _1 27)

同理可证

128 和 128 返回flase

因为超出范围,底层源码会直接创建新对象

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务