Junior — Middle
Na kom mestu u memoriji Java skladišta se nalaze objekti nizova?
sobes.tech АИ
Одговор од АИ
U Javi, objekti niza (String) se čuvaju u posebnoj oblasti memorije nazvanoj String Pool (bazen nizova), koja se nalazi u Metaspace ili u PermGen (u starijim verzijama JVM-a).
Kada se kreira literal niza, JVM proverava bazen nizova: ako takav niz već postoji, vraća referencu na postojeći objekat; u suprotnom, kreira novi objekat i smešta ga u bazen. Ovo pomaže u uštedi memorije i ubrzava poređenje nizova.
Ako se niz kreira pomoću konstruktora new String(), objekat se kreira na hrpi (heap) i neće automatski biti smešten u String Pool, osim ako eksplicitno ne pozovete metodu intern().
Primer:
String s1 = "hello"; // niz u bazenu
String s2 = new String("hello"); // objekat na hrpi
String s3 = s2.intern(); // s3 referencira niz iz bazena