Sobes.tech
Junior — Middle

Java сактагычтагы эссе объекттери кайда жайгашкан?

sobes.tech AI

AIден жооп

Javaда, жол объекттери (String) атайын эс тутум аймагында сакталат, аны String Pool (жолдар жыйнагы) деп аталат жана ал Metaspace же PermGen (эски JVM версияларында) ичинде жайгашкан.

Жол литерал түзүлгөндө, JVM жолдор жыйнагын текшерет: эгер андай жол алда канча бар болсо, анда ошол объектке шилтеме кайтарып берет; эгер жок болсо, жаңы объект түзүлүп, жыйнака кошулат. Бул эс тутумду үнөмдөөгө жана жолдорду салыштырууну тездетүүгө жардам берет.

Эгер жол new String() конструктору аркылуу түзүлсө, объект heapке (жыйнакка) түзүлөт жана автоматтык түрдө String Poolго кирбейт, эгер intern() методу такыр чакырылбаса.

Мисал:

String s1 = "hello"; // жыйнактын ичинде жол
String s2 = new String("hello"); // объект жыйнактын сыртында
String s3 = s2.intern(); // s3 жыйнактын ичиндеги жолго шилтеме кылат