Junior — Middle
Kas saaksite selgitada stringi bassein ja selle rolli Java mälu haldamisel?
sobes.tech AI
Vastus AI-lt
Java String Pool on spetsiaalne koht mälus, kus hoitakse un unikaalseid string-literale. See aitab säästa mälu ja kiirendada stringide võrdlemist.
Kui loote stringi literaliga, näiteks:
String s = "tere";
Java paneb selle stringi string pooli. Kui hiljem luuakse teine string sama väärtusega, viitab see juba olemasolevale objektile poolis, mitte ei loo uut.
See on oluline mälu haldamiseks, kuna stringid on sageli kasutatavad objektid ning nende korduvkasutamine vähendab prügikoristaja koormust ja mälu kasutust.
Kui string luuakse konstruktoriga new String("tere"), siis see luuakse heapile ja seda ei kasutata automaatselt uuesti.
Stringi lisamiseks pooli saab kutsuda meetodi intern():
String s1 = new String("tere");
String s2 = s1.intern(); // s2 viitab stringile poolis