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

 转自:http://blog.csdn.net/qq_27093465/article/details/52473059

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


二者的差异:

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

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

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

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

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

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

以 int 为例,如下:

[java]  view plain  copy  在CODE上查看代码片 派生到我的代码片
  1. public static Integer valueOf(String s) throws NumberFormatException {  
  2.     return Integer.valueOf(parseInt(s, 10));  
  3. }  
  4.   
  5. public static Integer valueOf(int i) {  
  6.     if (i >= IntegerCache.low && i <= IntegerCache.high)  
  7.         return IntegerCache.cache[i + (-IntegerCache.low)];  
  8.     return new Integer(i);  
  9. }  
  10.   
  11.   
  12. public static int parseInt(String s) throws NumberFormatException {  
  13.     return parseInt(s,10);  
  14. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值