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í:
- JVM kontroluje zásobník řetězců (String Pool - speciální oblast paměti na haldě), zda již existuje literál řetězce
"asd". - Pokud
"asd"již v zásobníku řetězců existuje, proměnnás1odkazuje na existující objekt v zásobníku. - Pokud
"asd"v zásobníku řetězců chybí, pak:- Vytvoří se nový objekt
Strings hodnotou"asd"v zásobníku řetězců. - Proměnná
s1odkazuje na tento právě vytvořený objekt.
- Vytvoří se nový 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ů.