今天查看以前的find-bugs 插件导出的bug列表,其中有这么一条,这个级别还是high ,既然是高级别的bug,那我得看看了
Boxing/unboxing to parse a primitive
这一条的最后定位为 valueof() 然后赋值给 int 变量,建议是什么呢
他给出的建议是 Should call Integer.parseInt(String) instead
那到底Integer.valueOf() and Integer.parseInt() 之间什么区别呢,
以前我就注意到这个东西,想过这个东西,但是呢,凡是问个为什么,毕竟我 不是专家,然后到 stack overflow 看了看
http://stackoverflow.com/questions/7355024/integer-valueof-vs-integer-parseint?noredirect=1&lq=1
这里有解说,和原来理解的一样 parseInt 返回的是int 类型的值,而valueof 返回的是 Integer 对象, 一个是原生类型,一个是object类型。
其实我的理解为,int 是原生的占的内存空间小,object 占的空间大。而且我相信 原生类型的比较,比方说相等,大小比较等和object类型的比较都不一样,应该相对简单那么一点点。
权当我胡说八道,如果我说错了。
本文探讨了Integer.valueOf()与Integer.parseInt()之间的差异。前者返回Integer对象,后者返回基本类型int。文章通过实例解释了这两种方法的使用场景,并讨论了它们在内存占用及性能上的不同。
983

被折叠的 条评论
为什么被折叠?



