A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

看程序写结果
(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取值范围就会再新创建对象。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马