Sobes.tech
Middle

Šta se dešava prilikom korišćenja sintakse String s1 = "asd"?

sobes.tech АИ

Одговор од АИ

Prilikom korišćenja sintakse String s1 = "asd";:

  1. 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.
  2. Kreiranje objekta:
    • Ako "asd" već postoji u poolu, promenljiva s1 će jednostavno referisati na taj postojeći objekat u poolu.
    • Ako ne postoji, JVM kreira novi String objekat u poolu stringova sa vrednošću "asd".
  3. Dodeljivanje reference: Promenljiva s1 dobija referencu na String objekat 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.