Sobes.tech
Junior — Middle

Ներկայացրեք Java ծրագրավորման լեզվում տողերի պուլի աշխատանքի մեխանիզմը

sobes.tech AI

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

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

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

String s = "բարև";

Java-ն ստուգում է, արդյոք այդ սրինգը արդեն գոյություն ունի պուլում։ Եթե կա՝ վերադարձնում է դրա հղումը; եթե ոչ՝ ավելացնում է:

Այսպիսով, դա օգնում է խնայել հիշողությունը և արագացնել սրինգների համեմատությունը (օպերատոր ==-ը համեմատում է հղումները):

Եթե սրինգը ստեղծվում է կոնստրուկտորով՝

String s = new String("բարև");

նոր օբյեկտ է ստեղծվում heap-ում, որը կապ չունի պուլին, բացի այն, եթե բացահայտորեն կանչենք intern():

String s2 = new String("բարև").intern();

Այդ դեպքում, s2 հղում է դեպի պուլում գտնվող սրինգը:

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