享元(flyweight)设计模式

11_黑马程序员_张孝祥_Java基础加强_基本数据的自动拆装箱及享元设计模式

public static void main(String args[]) {

Integer i11 = 1;

System.out.println(i11 + 2);

Integer i12 = 1;

System.out.println(i11 == i12);

Integer i21 = 128;

Integer i22 = 128;

System.out.println(i21 == i22);

}

i11的创建使用了装箱(从基本数据类型int到Integer),第一个输出使用了自动拆箱(从Integer到int,再进行加法);

第二个输出为true,第三个输出为false。由于Integer当只有一个字节时采用享元设计模式,i11和i12为同一内存对象(怎么表达?),i11创建对象后,当i12创建之前发现已有相同的对象就直接使用i11对象。

原文地址:https://www.cnblogs.com/sxjzhjj/p/4047071.html