Flyweight Pattern

class Solution {
  public static void main(String[] args) {
    
    Integer i1 = 128;
    Integer i2 = 128;
    System.out.println(i1.hashCode()); // 128
    System.out.println(i2.hashCode()); // 128
    System.out.println(i1 == i2); // false
    
    System.out.println();

    Integer i3 = new Integer(127);
    Integer i4 = new Integer(127);
    System.out.println(i3.hashCode()); // 127
    System.out.println(i4.hashCode()); // 127
    System.out.println(i3 == i4); // false
    
    System.out.println();
    
    Integer i5 = 126;
    Integer i6 = 127;
    Integer i7 = 128;
    i5++;
    System.out.println(i5.hashCode()); // 127
    System.out.println(i6.hashCode()); // 127
    System.out.println(i5 == i6); // true
    
    System.out.println();
    
    i7--;
    System.out.println(i6.hashCode()); // 127
    System.out.println(i7.hashCode()); // 127
    System.out.println(i6 == i7); // true
  }
}
comments powered by Disqus