Middle
Ի՞նչ է տեղի ունենում, երբ օգտագործվում է String s1 = "asd" սինտաքսը։
sobes.tech AI
Պատասխան AI-ից
Երբ օգտագործվում է String s1 = "asd"; սինտաքսը՝
- String Pool (ստրինգների պուլ): JVM-ը ստուգում է, արդյոք
"asd"տողային լիտերալը արդեն գոյություն ունի պուլում: Ստրինգների պուլը հատուկ տարածք է հողում, որտեղ պահվում են եզակի տողային լիտերալները՝ հիշողությունը խնայելու համար: - Օբյեկտի ստեղծում:
- Եթե
"asd"արդեն գոյություն ունի պուլում, ապա փոփոխականըs1պարզապես կվերաբերի այդ առկա օբյեկտին: - Եթե չկա, JVM-ը ստեղծում է նոր
Stringօբյեկտ պուլում՝ արժեքով"asd":
- Եթե
- Հղման նշանակում: Փոփոխականը
s1ստանում է հղումStringօբյեկտին պուլում:
Ի տարբերություն String s2 = new String("asd");, երբ օգտագործվում է լիտերալ, օբյեկտը կարող է վերաօգտագործվել այլ հղումներով՝ pointing to the same literal, ինչը հանգեցնում է հիշողության օպտիմալացման: