Sobes.tech
Junior

Co se stane při použití syntaxe String s1 = "asd"?

sobes.tech AI

Odpověď od AI

Při použití syntaxe String s1 = "asd"; se děje následující:

  1. JVM kontroluje zásobník řetězců (String Pool - speciální oblast paměti na haldě), zda již existuje literál řetězce "asd".
  2. Pokud "asd" již v zásobníku řetězců existuje, proměnná s1 odkazuje na existující objekt v zásobníku.
  3. Pokud "asd" v zásobníku řetězců chybí, pak:
    • Vytvoří se nový objekt String s hodnotou "asd" v zásobníku řetězců.
    • Proměnná s1 odkazuje na tento právě vytvořený objekt.

Tento mechanismus se nazývá internování řetězců (String Interning) a pomáhá šetřit paměť tím, že zabraňuje vytváření duplicit stejných literálů řetězců.