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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 芝麻糊 中级黑马   /  2015-10-1 23:28  /  115 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Integer x = 4;//自动装箱。//Integer.valueOf(4)   小心 x = null 运算前进行判断


x = x/* x.intValue() */ + 2;//x+2:x 进行自动拆箱。变成成了int类型。和2进行加法运算。
     //再将和进行装箱赋给x。


  Integer m = 128;
  Integer n = 128;

  m == n;   // false

  Integer a = 127;
  Integer b = 127;

  a == b;   // true  因为a和b指向了同一个Integer对象。
            //因为当数值在byte范围内容,对于新特性会将其存放在缓存池中,再次使用时,如果该数值已经存在,则不会在开辟新的空间。


  JVM认为这些比较小的数字使用的频率会很高, 使用一次new一个对象浪费资源
  
  这是一种设计模式:享元模式


  new 出来的 Integer 用 == 判断 一定是 false


产生Integer对象用下面这个方法public static IntegervalueOf(int i)返回一个表示指定的 int 值的 Integer 实例。如果不需要新的 Integer 实例,则通常应优先使用该方法,而不是构造方法 Integer(int),因为该方法有可能通过缓存经常请求的值而显著提高空间和时间性能。










0 个回复

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