今天查看以前的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类型的比较都不一样,应该相对简单那么一点点。
权当我胡说八道,如果我说错了。