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-ը օգնում է արդյունավետ կառավարել հիշողությունը տողերով աշխատելիս։