Junior — Middle
Објасните механизам рада пула стрингова у језику за програмирање Java
sobes.tech АИ
Одговор од АИ
U Javi, String Pool (bazen nizova) je posebno mesto u memoriji gde se čuvaju literali nizova i jedinstveni primerci nizova.
Kada se niz kreira pomoću literala, na primer:
String s = "zdravo";
Java proverava da li takav niz već postoji u bazenu. Ako postoji, vraća referencu na njega; ako ne, dodaje ga.
Ovo pomaže u štednji memorije i ubrzava poređenje nizova (operator == poredi reference).
Ako se niz kreira putem konstruktora:
String s = new String("zdravo");
kreira se novi objekat na hrpi koji nije povezan sa bazenom, osim ako se eksplicitno pozove intern():
String s2 = new String("zdravo").intern();
Tada će s2 referisati na niz iz bazena.
Na ovaj način, String Pool pomaže da se izbegne dupliranje istih nizova u memoriji i optimizuje rad sa njima.