Junior
Čo sa stane pri použití syntaxe String s1 = "asd"?
sobes.tech AI
Odpoveď od AI
Pri použití syntaxe String s1 = "asd"; sa nasledovným priebehom:
- JVM kontroluje zásobník reťazcov (String Pool - špeciálna oblasť pamäte v halde) na prítomnosť literálu reťazca
"asd". - Ak
"asd"už existuje v zásobníku reťazcov, premennejs1odkazuje na existujúci objekt v zásobníku. - Ak
"asd"v zásobníku chýba, tak:- Vytvorí sa nový objekt
Strings hodnotou"asd"v zásobníku reťazcov. - Premenná
s1odkazuje na tento nový objekt.
- Vytvorí sa nový objekt
Tento mechanizmus sa nazýva internovanie reťazcov (String Interning) a pomáha šetriť pamäť tým, že zabraňuje vytváraniu duplikátov rovnakých literálov reťazcov.