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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jaunce 中级黑马   /  2015-8-26 07:43  /  294 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

面试题: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));  


求结果


1 个回复

倒序浏览
解释:
基本上文件的最小表示单位就是字节,
也就是Byte范围内的值,直接赋值给Integer,是从常量池里面获取的直接给他赋值
Integer获取的是byte常量池的值
超过了byte范围时,两个new 出来的Integer指向的就不是同一个对象了,就不相等了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马