黑马程序员技术交流社区

标题: Integer经典面试题 [打印本页]

作者: jaunce    时间: 2015-8-26 07:43
标题: Integer经典面试题
面试题:Integer
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));

System.out.println("--------");

Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);
System.out.println(i3.equals(i4));
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);
System.out.println(i5.equals(i6));

System.out.println("--------");

Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);  //true
System.out.println(i7.equals(i8));  


求结果



作者: jaunce    时间: 2015-8-26 07:48
解释:
基本上文件的最小表示单位就是字节,
也就是Byte范围内的值,直接赋值给Integer,是从常量池里面获取的直接给他赋值
Integer获取的是byte常量池的值
超过了byte范围时,两个new 出来的Integer指向的就不是同一个对象了,就不相等了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2