类型转换的时候,.valueOf()和.parseX()的区别

valueOf:返回的是个包装类
parseInt:返回的就是基本数据类型

二者的差异:

中间有个装箱拆箱的过程,如果准确的知道自己要的是什么返回值的话,
就可以明确清楚的选择用哪个方法来转换,而获得自己想要的值,且是最大效率的do it.

(当然,这一般情况下是没人去管这个的,因为这个是findbugs找到的,所以,才有这篇文章的出现。)

Java包装类型的装箱拆箱机制

JAVA基本类型,不用new来创建变量,而是创建一个并非是“引用”的“自动”变量。这个变量拥有它的“值”,并置于堆栈中,因此更加高效。

Java中的某些操作只能使用对象,而基本类型不是类类型,不能实例化成对象,比如Collection,就必须以对象实现。

所谓的装箱指的是基本类型转换为包装类型,拆箱指的是包装类型转换为基本类型。

以 int 为例,如下:

    public static Integer valueOf(String s) throws NumberFormatException {
        return Integer.valueOf(parseInt(s, 10));
    }

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


    public static int parseInt(String s) throws NumberFormatException {
        return parseInt(s,10);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值