Sobes.tech
Junior — Middle

Կարող եք բացատրել տողերի պուլը և դրա դերը Java- ում հիշողության կառավարումում:

sobes.tech AI

Պատասխան AI-ից

Java-ի String Pool-ը հատուկ վայր է հիշողության մեջ, որտեղ պահվում են եզակի տողային լիտերալների օրինակները: Սա թույլ է տալիս խնայել հիշողությունը և արագացնել տողերի համեմատությունը:

Երբ դուք ստեղծում եք տող լիտերալով, օրինակ՝

String s = "բարև";

Java-ն տեղադրում է այս տողը տողային պուլում: Եթե հետագայում ստեղծվի նույն արժեքով այլ տող, այն կվերաբերի արդեն գոյություն ունեցող օբյեկտին պուլում, այլ ոչ թե նոր կստեղծվի:

Սա կարևոր է հիշողության կառավարման համար, քանի որ տողերը հաճախ օգտագործվող օբյեկտներ են, և դրանց կրկնակի օգտագործումը նվազեցնում է գարշահոտ հավաքողին բեռը և սպառումը:

Եթե տողը ստեղծվում է new String("բարև") կոնստրուկտորով, այն ստեղծվում է heap-ում և չի վերածնվում ավտոմատ կերպով:

Տողը պուլում ավելացնելու համար կարող եք կանչել intern() մեթոդը:

String s1 = new String("բարև");
String s2 = s1.intern(); // s2 կվերաբերի պուլում գտնվող տողին