关于int类型以及equals比较的问题

   先来看下面的一段程序:
	object value1=0;        integer value2=0;        long value3=new long(0);	system.out.println(value1.equals(value2));	system.out.println(value1.equals(value3));
 各位在看我下面的答案之前可以先自己判断一下输出的是什么,测试后输出的是:
truefalse
 为什么是这样的输出,这里面有两点内容:
1、object value1=0;这样写的话,默认value1的类型就是integer类型的,各位可以这样输出一下:
system.out.println(value1.getclass());
 输出会是:
class java.lang.integer
 2、我们都知道equals比较的是两个对象的内容是否相同,但是要明确一点,这两个对象的类型是要相同的。
 
根据上面两点的分析,就不难得出上面的输出结果了。
 
不过对于这个还有一个问题,我没想明白,对于:
object value1=0;
 如果没做特殊的说明,会默认value1是integer类型的,也就是说value1的取值不能超过integer的最大值,在myeclipse中直接书写,超过integer的最大取值编译是通不过的,会报out of range错误:
<br><img src="http://dl.iteye.com/upload/attachment/528754/4d5a06d7-f24a-32a5-91d1-6de1e2f93ad2.jpg" alt="">
 
但是我这样书写:
object value1=integer.max_value+200;
  这样写为什么可以,而且有输出:
   -2147483449
对于这点不是很明白,哪位指导一下。
<div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值