黑马程序员技术交流社区
标题:
关于基本数据类型包装类的问题。
[打印本页]
作者:
李涛兴
时间:
2012-11-17 23:49
标题:
关于基本数据类型包装类的问题。
本帖最后由 李涛兴 于 2012-11-18 11:30 编辑
class IntegerDemo
{
public static void main(String[] args)
{
Integer m=128;
Integer n=128;
Integer a=127;
Integer b=127;
System.out.println("m==n: "+(m==n));
System.out.println("a==b: "+(a==b));
}
}
运行结果
m==n: false
a==b: true
复制代码
在1.5版本的JDK中运行结果有这种差别,是因为定义的数值没有超过byte的数值范围内,而使a,b指向同一个对象。
请问为什么没有超过byte这个数值,就会指向同一个对象呢?是因为byte的数值范围是-128~127这个数值之间,byte就可以代替使用int类型赋值吗?
作者:
森仔
时间:
2012-11-18 00:02
Integer在对象池中只保存从-128~127之间的整数
超出了就创建新对象
m==n 比较的 m 和n 的引用,所以是false
作者:
李涛兴
时间:
2012-11-18 11:34
感谢上面的同学给的见解,希望有同学给出更详细点的讲解,感激...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2