Middle
Šta se dešava prilikom korišćenja sintakse String s1 = "asd"?
sobes.tech АИ
Одговор од АИ
Prilikom korišćenja sintakse String s1 = "asd";:
- Pool stringova (String Pool): JVM proverava da li već postoji literalni string
"asd"u poolu stringova. Pool stringova je posebno područje u hrpi gde se čuvaju jedinstveni string literali radi uštede memorije. - Kreiranje objekta:
- Ako
"asd"već postoji u poolu, promenljivas1će jednostavno referisati na taj postojeći objekat u poolu. - Ako ne postoji, JVM kreira novi
Stringobjekat u poolu stringova sa vrednošću"asd".
- Ako
- Dodeljivanje reference: Promenljiva
s1dobija referencu naStringobjekat u poolu stringova.
Za razliku od String s2 = new String("asd");, pri korišćenju literala, objekat može biti ponovo korišćen od strane drugih referenci koje ukazuju na isti literal, što dovodi do optimizacije memorije.