Hirdetés

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

  • Gyuri16
    senior tag

    Hali!
    Singleton osztalyokkal es GC-vel kapcsolatban lenne egy kerdesem..Ha van egy osztalyom, pl
    public MyClass {
    private static MyClass myClassInstance = null ;
    private MyClass() {}

    public static MyClass getInstance() {
    if(myClassInstance == null) { myClassInstance = new MyClass(); }
    return myClassInstance ;
    }
    }

    Naugye most az osztalynak van referenciaja sajat magara. GC amennyire en tudom addig nem torol egy objektumot, amig van ra valahol strong reference. Mi a helyzet ebben az esetben? Mikor fogja a GC torolni az osztaly? Van kulonbseg az kozott, hogy egy osztalynak van referenciaja magara es akozott, hogy mas osztalynak van referenciaja az adott osztalynak?

    amig van referencia az objektumra, addig a gc nem torli. Singleton eseteben tobbnyire azt jelenti, hogy amig fut a program addig letezik az objektum is (amig van referencia a classloaderre).

    masik dolog: nem ajanlom, hogy igy implementald a singletont, a lazy initialization tobb threades kornyezetben kellemetlenseget okoz. egyszerubb igy
    private static MyClass myClassInstance = null ;
    helyett
    private static MyClass myClassInstance = new MyClass();

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