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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public class Test{
  2. public static void main(String[] args) {
  3.   Integer i=12338;
  4.   Integer j=12338;
  5.   System.out.println(i==j);
  6. }
  7. }
复制代码

10 个回复

倒序浏览
jdk1.5出现的新特性:
因为当数值在byte范围内(<128)对于新特性:如果该数值已存在不会再开辟新空间。所以只能
Integer i=127;
Integer j=127;
System.out.println(i=j); // true
回复 使用道具 举报
jdk1.5出现的新特性:
因为当数值在byte范围内(<128)对于新特性:如果该数值已存在不会再开辟新空间。所以只能
Integer i=127;
Integer j=127;
System.out.println(i==j); // true
回复 使用道具 举报
哦 这还得1.5以上才算数啊
回复 使用道具 举报
貌似Integer的缓存在-128-127之间,大的值是重新New出来的,所以地址不一样,判断不相等
回复 使用道具 举报
只有后面的值在-128到127之间,调用==就是true,反之亦然。
回复 使用道具 举报
jdk源码,方法如下。     public static Integer valueOf(int i) {         if(i >= -128 && i <= IntegerCache.high)             return IntegerCache.cache[i + 128];         else             return new Integer(i);     } 默认的话他会缓存 -127到128之间的整数,其余的他会new。。如果你把12338变成-127到128之间的数结果就是true
回复 使用道具 举报
ZSMAN 中级黑马 2015-5-24 08:56:00
8#
张孝祥的java高新技术里讲过~
回复 使用道具 举报
途中ms前进 发表于 2015-5-23 12:10
jdk1.5出现的新特性:
因为当数值在byte范围内(

楼上正解
回复 使用道具 举报
Lucus 中级黑马 2015-5-24 13:48:15
10#
学习了  基础视频里有讲吧
回复 使用道具 举报
基本类型包装类是JDK1.5版本以后出现的新特性,而int基本数据类型的包装类Integer有个特性是所赋予的值在Byte类型的范围内,当第一次赋值后会使用数字保存起来,如果第二次赋值,会先在数组中查找,如果有就直接指向这个Integer对象,不会再开辟内存空间
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马