Hirdetés

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

  • Superhun
    addikt

    (#4241) Superhun : sb.replace(0,sb.length,"x"); Tudom nem szép....

    (#4243) modder : Nyilván mindenre azt lehet mondani, hogy "attól függ..."
    Én alapvetően erre a helyzetre akartam reagálni.:
    String s = "egy";
    ...
    s = "ketto"; // innentől kezdve ott ül a memóriában elérhetetlenül, hogy "egy" ami majd egyszer ki lesz takarítva.
    Amíg ez egyszer van addig oké nem nagy érvágás...de alkalmazás szinten már halmozódhat a dolog. Nem törvényszerű nyilván...

    A példa amit írtál az kicsit erőltetett...egy szóval nem mondtam, hogy String helyett általánosan StringBuilder-t kell használni...pláne nem olyan helyzetben amit vázoltál. Ha tudom, hogy lesz egy szövegem ami nem fog megváltozni akkor persze String, de ha valamivel "műveleteket" szeretnék végezni akkor StringBuilder.

    sb.replace(0,sb.length,"x")

    Ekkor is létrehozol egy "x" (vagy akármi más) tartalmú String objektumot. Tény, hogy utána a régi literált nem kell GC-zni, mert egyszerűen felülcsapja az új literállal a karaktertömbjét, de ha picit utánaolvasol annak, hogy mi az a PermGen, akkor rájössz, hogy alapesetben a régi Stringet sem fogja megenni a GC. Annyit értél el az egésszel, hogy rondább lett a kód. ;)

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