JAVA中Integer.parseInt()与Integer.valueOf()
2017-08-03 17:22
549 查看
今天在公司写代码,思考到这个问题,先占个位,等闲了在补充。
---------------------------------------------------开始和大家上干货-----------------------------------------------------------------------------
在网上看的一段代码,很有代表性:
重点:
new Integer() 每次构造一个新的Integer对象。
Integer.parseInt每次构造一个int常量。
Integer.valueOf返回一个Integer对象。
所以:
int整型常量比较时,== 是值比较,所以1,2返回true。1,2是值比较。
new Integer() 每次构造一个新的Integer对象,所以3返回false。3是对象比较。
Integer.parseInt每次构造一个int常量,所以4返回true。4是值比较。
Integer.valueOf返回一个Integer对象,默认在-128~127之间时返回缓存中的已有对象(如果存在的话),所以5返回true,6返回false,注意值的区间是否在-128~127之间,如果在,则构造的相同值的对象是同一个对象,==比较后返回true,否则返回false。5,6是对象比较。
第7个比较特殊,是int 和 Integer之间的比较,结果是值比较,返回true。
参考博客地址:http://www.cnblogs.com/hdwang/p/7009449.html
---------------------------------------------------开始和大家上干货-----------------------------------------------------------------------------
在网上看的一段代码,很有代表性:
1.System.out.println(127==127); //true , int type compare 2.System.out.println(128==128); //true , int type compare 3.System.out.println(new Integer(127) == new Integer(127)); //false, object compare 4.System.out.println(Integer.parseInt("128")==Integer.parseInt("128")); //true, int type compare 5.System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); //true ,object compare, because IntegerCache return a same object 6.System.out.println(Integer.valueOf("128")==Integer.valueOf("128")); //false ,object compare, because number beyond the IntegerCache 7.System.out.println(Integer.parseInt("128")==Integer.valueOf("128")); //true , int type compare
重点:
new Integer() 每次构造一个新的Integer对象。
Integer.parseInt每次构造一个int常量。
Integer.valueOf返回一个Integer对象。
所以:
int整型常量比较时,== 是值比较,所以1,2返回true。1,2是值比较。
new Integer() 每次构造一个新的Integer对象,所以3返回false。3是对象比较。
Integer.parseInt每次构造一个int常量,所以4返回true。4是值比较。
Integer.valueOf返回一个Integer对象,默认在-128~127之间时返回缓存中的已有对象(如果存在的话),所以5返回true,6返回false,注意值的区间是否在-128~127之间,如果在,则构造的相同值的对象是同一个对象,==比较后返回true,否则返回false。5,6是对象比较。
第7个比较特殊,是int 和 Integer之间的比较,结果是值比较,返回true。
参考博客地址:http://www.cnblogs.com/hdwang/p/7009449.html
相关文章推荐
- JAVA中Integer.valueof() Integer.parseInt()区别
- java中 Integer.parseInt()和Integer.valueOf(“str”).intValue()方法的应用
- java中Integer.parseInt(String)与Integer.valueOf(String)区别
- java web 中Integer.valueof()与integer.parseint()
- 【Java】Integer.parseInt() & Integer.valueOf() & new Integer()
- java中Interger.parseInt(String str),Integer.valueOf(),Ingeger.getInteger()方法的区别
- java中Integer.parseInt(),Integer.valueOf(),Integer.getInteger()方法的不同
- java中关于Integer.parseInt(),Integer.valueOf(),Ingeger.getInteger()方法的不同
- Java Integer.parseInt(String);Integer.valueOf(String).intValue(); 两种方式的区别
- java parseInt和valueOf区别
- jsp中遇到Integer的方法valueOf()和parseInt()的区别.前者要求是对象类型,后者是数字型字符串
- Integer.valueof() Integer.parseInt()
- Java中 intValue,parseInt,Valueof 这三个关键字的区别
- java Integer.valueOf()方法
- java Integer.valueOf 和 Integer.parseInt 和 new Integer区别及注意事项
- Integer.valueof() Integer.parseInt()
- javaSE----Integer.parseInt()与Integer.valueOf()的区别
- Java中parseInt()和valueOf(),toString()的区别
- Integer.parseInt() 和valueOf 的区别
- Integer.parseInt()和Integer.valueOf()有什么区别