Хувьсагчдыг хэрхэн хадгалдаг вэ?
Хувьсагчдыг хэрхэн хадгалдаг вэ?

Видео: Хувьсагчдыг хэрхэн хадгалдаг вэ?

Видео: Хувьсагчдыг хэрхэн хадгалдаг вэ?
Видео: Хичээл№6 - Өгөгдлийн төрөл болон хувьсагч 2024, Арваннэгдүгээр
Anonim

Хувьсагч ихэвчлэн байдаг хадгалсан RAM-д. өөрөө ихэвчлэн дээрх дүрмийг дагаж мөрддөг (функц дотор зарлагдсан заагч нь хадгалсан стек дээр), харин түүний зааж буй өгөгдөл (санах ойн блок өөрөө эсвэл шинээр үүсгэсэн объект) байна хадгалсан овоо дээр.

Үүнтэй адилаар хувьсагч хаана хадгалагддаг вэ?

Бүх глобал болон статик хувьсагчдыг өгөгдлийн сегментэд, харин тогтмолыг кодын сегментэд хадгална. Глобал хувьсагчид хэрхэн тохируулагдсанаас хамааран хэд хэдэн газар байж болно - for жишээ , const globals нь гүйцэтгэх файлын зөвхөн унших боломжтой хэсэгт байж болно.

Үүний нэгэн адил хувьсагчдыг Java-д хэрхэн хадгалах вэ? Бүх объектууд Java байна хадгалсан овоо дээр. " хувьсагч " тэдгээрт хамаарах лавлагаа нь стек дээр байж болно эсвэл бусад объектуудад агуулагдаж болно (тэгвэл тэдгээр нь үнэхээр биш юм. хувьсагч , гэхдээ талбарууд), энэ нь тэдгээрийг мөн овоолго дээр тавьдаг. Heap хэсэг нь Объектуудыг агуулна (бас лавлагаа агуулж болно хувьсагч ).

Мөн асуулт бол хувьсагчдыг санах ойд хэрхэн хадгалах вэ?

The санах ой a-д зориулсан үүр хувьсагч хадгалагдана стек эсвэл овоолгын аль нэг дээр. Энэ нь зарласан нөхцөл байдлаас хамаарна: Орон нутаг бүр хувьсагч (өөрөөр хэлбэл нэг аргад тунхагласан) байна хадгалсан стек дээр. Статик бүр хувьсагч хадгалагдана лавлагааны төрөл эсвэл утгын төрөл дотор зарласан эсэхээс үл хамааран нуруулдан дээр.

Орон нутгийн хувьсагчдыг стек дээр хэрхэн хадгалдаг вэ?

Орон нутгийн хувьсагчдыг хадгалах дээр стек нь хэрэгжилтийн дэлгэрэнгүй – үндсэндээ оновчлол юм. Та үүнийг ингэж бодож болно. Функцийг оруулахдаа бүгдэд зориулсан зай орон нутгийн хувьсагч хаа нэгтээ хуваарилагдсан. Энэ нь эсрэгээрээ юм хувьсагч хаяг нь өөрсдөө байдаг овоолго дээр хуваарилагдсан хадгалсан бусад нь хувьсагч.

Зөвлөмж болгож буй: