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