黑马程序员技术交流社区

标题: 超级难找!!!!福利Integer的面试题(享元设计模式,byte常量...! [打印本页]

作者: 闭关修行小和尚    时间: 2016-1-3 23:52
标题: 超级难找!!!!福利Integer的面试题(享元设计模式,byte常量...!
看程序写结果
(1)       
Integer i1 = new Integer(97);                                                                //变量为对象的,地址值肯定不是相同的
Integer i2 = new Integer(97);
System.out.println(i1 == i2);  //false
System.out.println(i1.equals(i2));  //true
System.out.println("-----------");
(2)
Integer i3 = new Integer(197);
Integer i4 = new Integer(197);
System.out.println(i3 == i4);  //false
System.out.println(i3.equals(i4));  //true
System.out.println("-----------");
(3)
Integer i5 = 97;
Integer i6 = 97;
System.out.println(i5 == i6);  //true                                                //只要在byte范围内,-128~127,        常量的引用必定相等
System.out.println(i5.equals(i6));  //true
System.out.println("-----------");
(4)
Integer i7 = 197;                                                                                //如果超过了这个范围,那么自动装箱就会创建新的对象
Integer i8 = 197;                                                                                //超过了就是创建对象,肯定不是相等的
System.out.println(i7 == i8);  //false
System.out.println(i7.equals(i8));  //true

byte常量池:
-128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会新创建对象,而是从常量池中获取,如果超过了byte取值范围就会再新创建对象。






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