Java Integer中 parseInt 和 valueOf 的区别

进行如下测试:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值