Sobes.tech
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:

  1. JVM kontroluje zásobník reťazcov (String Pool - špeciálna oblasť pamäte v halde) na prítomnosť literálu reťazca "asd".
  2. Ak "asd" už existuje v zásobníku reťazcov, premennej s1 odkazuje na existujúci objekt v zásobníku.
  3. Ak "asd" v zásobníku chýba, tak:
    • Vytvorí sa nový objekt String s hodnotou "asd" v zásobníku reťazcov.
    • Premenná s1 odkazuje na tento 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.