Կարող եք բացատրել տողերի պուլը և դրա դերը Java- ում հիշողության կառավարումում:
sobes.tech AI
Պատասխան AI-ից
Java-ի String Pool-ը հատուկ վայր է հիշողության մեջ, որտեղ պահվում են եզակի տողային լիտերալների օրինակները: Սա թույլ է տալիս խնայել հիշողությունը և արագացնել տողերի համեմատությունը:
Երբ դուք ստեղծում եք տող լիտերալով, օրինակ՝
String s = "բարև";
Java-ն տեղադրում է այս տողը տողային պուլում: Եթե հետագայում ստեղծվի նույն արժեքով այլ տող, այն կվերաբերի արդեն գոյություն ունեցող օբյեկտին պուլում, այլ ոչ թե նոր կստեղծվի:
Սա կարևոր է հիշողության կառավարման համար, քանի որ տողերը հաճախ օգտագործվող օբյեկտներ են, և դրանց կրկնակի օգտագործումը նվազեցնում է գարշահոտ հավաքողին բեռը և սպառումը:
Եթե տողը ստեղծվում է new String("բարև") կոնստրուկտորով, այն ստեղծվում է heap-ում և չի վերածնվում ավտոմատ կերպով:
Տողը պուլում ավելացնելու համար կարող եք կանչել intern() մեթոդը:
String s1 = new String("բարև");
String s2 = s1.intern(); // s2 կվերաբերի պուլում գտնվող տողին