本帖最后由 後天__牛永志 于 2011-11-16 10:41 编辑
自动装箱和自动拆箱是java1.5之后才出现的功能。
自动装箱针对于从-128到127之间的值,使用一个实例对象。所以num3==num4,返回的值是true。num5==num6,返回的值是false;
num7和num8是基本数据类型。并且存在栈内存中的,没有对象的引用,比较的是两个值的大小。所以返回的也true。
在Java语言中,整型对象在不同数值范围内的比较分两种情况:
1:数据在一个字节(-128至127)范围内,则直接从缓存数组中取值,而不再重新创建对象。故此范围的数据对象比较的时候, == 和equals的比较结果都为true.
2:数据大于一个字节,则新创建一个对应的实例对象。故==得比较结果为false,而equals的比较结果为true.
|