Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Zasto su stringovi nepromenljivi objekti?

[es] :: Java :: Zasto su stringovi nepromenljivi objekti?

[ Pregleda: 2060 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

glamoc

Član broj: 125620
Poruke: 346
*.ptt.rs.



+1 Profil

icon Zasto su stringovi nepromenljivi objekti?05.07.2011. u 19:56 - pre 162 meseci
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?
Kad covjeka napusti Sunce njegovog zavicaja ko ce mu posvijetliti na putu povratka
 
Odgovor na temu

Au197/79
Zlatan Kadragić
Minhen

Član broj: 3556
Poruke: 772
*.cpe.masko.rs.

Sajt: aurelije.blogspot.com


+47 Profil

icon Re: Zasto su stringovi nepromenljivi objekti?05.07.2011. u 20:40 - pre 162 meseci
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...
Bolje džaba ležat nego džaba radit.
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.dta.co.rs.

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: Zasto su stringovi nepromenljivi objekti?06.07.2011. u 09:57 - pre 162 meseci
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 :)
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Zasto su stringovi nepromenljivi objekti?06.07.2011. u 11:17 - pre 162 meseci
Možda ova tema na stackoverflow.com pomogne:
http://stackoverflow.com/quest...ngs-be-mutable-in-java-and-net
 
Odgovor na temu

[es] :: Java :: Zasto su stringovi nepromenljivi objekti?

[ Pregleda: 2060 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.