Java Integer中 parseInt 和 valueOf 的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Chengliangyao/article/details/84196245

进行如下测试:

1、System.out.println(127 == 127);
2、System.out.println(128 == 128);
3、System.out.println(new Integer(127) == new Integer(127));
4、System.out.println(Integer.parseInt("1234") == Integer.parseInt("1234"));
5、System.out.println(Integer.valueOf("123") == Integer.valueOf("123"));
6、System.out.println(Integer.valueOf("156") == Integer.valueOf("156"));
7、System.out.println(Integer.parseInt("123") == Integer.valueOf("123"));

得到的结果:

1、true
2、true
3、false
4、true
5、true
6、false
7、true

== 是对象比较,equals是值比较,但是对于int等基本值类型,==也是值比较

paseInt每次构造一个常量值,所以第4个是true

valueOf是对象比较,默认值会在-128-127之间返回缓存中已经存在的已有对象,所以5是true,而6超出了范围,都是新建对象,结果为false

如果parseInt和valueOf作比较,只要其中一个是值,整体的比较就是一个值比较,所以7是true

猜你喜欢

转载自blog.csdn.net/Chengliangyao/article/details/84196245