Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Gyuri16
    senior tag

    Ühüm, akkor fontos, hogy konstruktorral hozzam létre :)
    Integer s = 8;
    Integer t = 8;

    Így meg a kettő ugyanaz lesz... egyébként ilyenkor s és t primitív? Vagy 2 külön hivatkozó változó, ami ugyanarra az Integer objektumra mutat a kupacban?

    Karma: "A gyakorlatban meg az Integer.valueOf-ban van ez a cache implementáció." Milyen cahce implementáció van ott? :) Nekem ez új.

    Integer s = 8;
    ilyenkor autoboxing miatt az Integer.valueOf(int) kerul meghivasra, ami cacheli a -128 tol 127ig terjedo szamokat, hogy gyorsabb legyen:

    private static class IntegerCache {
    private IntegerCache(){}

    static final Integer cache[] = new Integer[-(-128) + 127 + 1];

    static {
    for(int i = 0; i < cache.length; i++)
    cache[i] = new Integer(i - 128);
    }
    }

    public static Integer valueOf(int i) {
    final int offset = 128;
    if (i >= -128 && i <= 127) { // must cache
    return IntegerCache.cache[i + offset];
      }
      return new Integer(i);
    }

Új hozzászólás Aktív témák