Sobes.tech
Junior — Middle

Ի՞նչ է տողային լիտերալների ստեքը և ինչու է այն անհրաժեշտ հիշողության կառավարման համար։

sobes.tech AI

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

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

Ի՞նչ է դա անհրաժեշտ:

  • Հիշողության խնայողություն՝ նույն տողերը պահվում են միայն մեկ անգամ:
  • Արդյունավետության բարձրացում՝ հղումներով համեմատությունը (==) հնարավոր է պուլից տողերի համար:

Օրինակ:

String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // true, երկու հղումները ցույց են տալիս նույն օբյեկտին պուլում

String s3 = new String("hello");
System.out.println(s1 == s3); // false, s3 նոր օբյեկտ է, դուրս պուլից

Այսպիսով, String Pool-ը օգնում է արդյունավետ կառավարել հիշողությունը տողերով աշխատելիս։