Middle
Kas vyksta naudojant sintaksę String s1 = "asd"?
sobes.tech AI
Atsakymas iš AI
Naudojant sintaksę String s1 = "asd";:
- String Pool (eilutės baseinas): JVM tikrina, ar
"asd"eilutės literal jau yra baseine. Baseinas yra speciali vieta heap'e, kur saugomos unikalios eilutės literal'ų reikšmės, siekiant taupyti atmintį. - Objekto sukūrimas:
- Jei
"asd"jau yra baseine, kintamasiss1paprasčiausiai nuoroda į tą esamą objektą. - Jei ne, JVM sukuria naują
Stringobjektą baseine su reikšme"asd".
- Jei
- Nuorodos priskyrimas: Kintamasis
s1gauna nuorodą įStringobjektą baseine.
Skirtingai nuo String s2 = new String("asd");, naudojant literal'ą, objektas gali būti pakartotinai naudojamas kitų nuorodų, nukreipiančių į tą patį literal'ą, kas leidžia taupyti atmintį.