Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 3 odgovora
  • 2.863 pregleda

Najnovija ↓

Zasto su stringovi nepromenljivi objekti? 05.07.2011. u 20:56 · pre 186 meseci #1
Ovo pitanje se odnosi skoro na sve objektno orjenisane jezike(Java,C#,Objective C).
Nije mi to jasno zasto su stringovi nepromenljivi objekti.
Mislim da to dosta ubrzava operacije sa stringovima, ali da zakrcuje memoriju.
Ima li neki posebno bitan razlog za ovo?
Potpis
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
Re: Zasto su stringovi nepromenljivi objekti? 05.07.2011. u 21:40 · pre 186 meseci #2
1) zbog optimizacije brzine i memorije, jer ako se zna da je "aaaa" uvek te vrednosti JVM će svaku pojavu tog literala vezati za isti objekat, neće se praviti novi osim ako se baše ne iskoristi new String("aaaa"). Isprobaj ovo, napravi više stringova pa ih poredi sa == dobićeš true osim ako ne koristiš operator new.
2) zbog enkapsulacije, kad getter metoda vrati referencu tipa String, preko te reference se ne može menjati unutrašnje stanje objekta, mora se pozvati setter.

Sigurno ima još razloga...
Potpis
Bolje džaba ležat nego džaba radit.
Re: Zasto su stringovi nepromenljivi objekti? 06.07.2011. u 10:57 · pre 186 meseci #3
Citat:
glamoc:
Mislim da to dosta ubrzava operacije sa stringovima, ali da zakrcuje memoriju.


Pa sad ovo je opet diskutabilno, jer npr substring nekog stringa koristi isti niz karaktera. pa tako zapravo imas i ustedu. A druga lepa stvar kod tih objekata koji ne mogu da menjaju svoj sadrzaj jeste da su Thread safe :) znaci nema potrebe za synchronize npr :)
Potpis
http://speedy-order.com
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme