基本类型Integer的享元设计模式

相信大家都知道,jdk5是java语言改变最大的一个jdk版本,它新加入的一个自动拆装箱的特性是我们java程序员方便了很多,使得基本类型int与java类型Integer基本上没有了什么区别,不需要我们再去用api在两者之间相互转换。

下面的例子我介绍一下关于Integer这个类所用到的享元设计模式:

public class FlyWeight {

public static void main(String[] args) {

   Integer num1 = 127;

   Integer num2 = 127;

   Integer num3 = 128;

   Integer num4 = 128;

   System.out.println(num1 == num2);//true

   System.out.println(num3 == num4);//false

  }

}

运行上面的结果,我们会发现上面的两个结果并不相同,这就是享元设计模式在Integer这个类上面的应用,由于数值比较小的数字用的频率比较高, 所以把它们做成一个对象重复利用可以节省内存资源,因此在-128——127的这些数字都采用了这种设计模式,反复用的都是一个对象。

你可能感兴趣的:(Integer,java基本类型)