CodeGym /Kurslar /Java SELF AZ /Yaddaşın ünvanlanması və dəyişənlər

Yaddaşın ünvanlanması və dəyişənlər

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Yaddaşın quruluşu

Hər bir kompüterin əməli yaddaşı var. Bu nədir, hansı xüsusiyyətlərə malikdir və ən əsası, bundan bizə nə fayda var?

Hər bir proqram (Java-da yazılmış proqramlar da daxil olmaqla) icra olunmazdan əvvəl əməli yaddaşa yüklənir. Əməli yaddaşda proqramın kodu (prosessor tərəfindən icra olunan) və proqramın məlumatları (proqramın özü tərəfindən yaddaşa yerləşdirilən) saxlanılır.

Bəs əməli yaddaş nədir və nəyə oxşayır?

Excel təsəvvür edin 😎 Excel-in səhifəsi xanalardan ibarətdir, və hər bir xananın öz unikal nömrəsi var (A1, A2, ... B1, B2). Xananın nömrəsini bilsək, oraya hər hansı bir dəyəri yaza və ya orada saxlanılan dəyəri əldə edə bilərik. Kompüterin yaddaşı da buna çox bənzəyir.

Proqram və onun məlumatları iş zamanı yaddaşda saxlanılır. Kompüterin bütün yaddaşı kiçik xanalar şəklində – baytlar kimi təqdim olunur. Hər bir xananın öz unikal nömrəsi var – 0, 1, 2, 3, ...; (nömrələmə sıfırdan başlayır). Xananın nömrəsini bilmək, bizə o xanaya məlumat qeyd etməyə imkan verir. Və ya orada saxlanan məlumatları götürmək imkanı yaradır. Bəzi xanalar proqramın kodunu – prosessorun komandalar dəstini saxlayır, digərləri isə proqramın məlumatlarını. Xananın nömrəsinə həmçinin xananın adresi deyilir.

Prosessor yaddaşa yüklənmiş proqramın komandalarını icra etməyi bacarır. Demək olar ki, prosessorun bütün komandaları bunlardır: bəzi xanalarından məlumatları götüronlarla nəsə etnəticəni digər xanalara yerləşdir

Sadə komandaların yüzlərcəsini birləşdirərək, mürəkkəb və faydalı komandalar əldə edirik.

Proqram kodunda dəyişən elan edildikdə, ona hələ istifadə olunmamış yaddaşın bir hissəsi ayrılır. Adətən bu bir neçə baytdır. Dəyişəni elan edərkən mütləq proqramın burada hansı tip məlumatları saxlayacağını qeyd etmək lazımdır: rəqəmlər, mətn və ya digər məlumatlar. Axı, məlumatların tipini bilmədən, dəyişən üçün hansı ölçüdə yaddaş bloku ayrılacağını təyin etmək mümkün deyil.

Kompüter texnologiyasının ilk dövrlərində proqramlar sadəcə yaddaş xanasının nömrələri ilə işləyirdi, amma sonradan proqramçılar üçün rahatlıq yaratmaq məqsədilə xanalar üçün adlar verməyə başladılar. Unikal dəyişən adı ilk növbədə proqramçılar üçün rahatlıqdır: proqram iş zamanı nömrələrlə də rahatlıqla öhdəsindən gələ bilərdi.


2. Yaddaşdakı dəyişənlər

Java-da tam rəqəmləri saxlamaq üçün 4 data tipi var. Bunlar byte, short, intlong-dur.

Tip Ölçü, bayt Adın mənşəyi
byte 1 Byte, çünki 1 bayt yaddaş tutur
short 2 Short Integer ifadəsinin qısaldılması
int 4 Integer ifadəsinin qısaldılması
long 8 Long Integer ifadəsinin qısaldılması

Həmçinin, Java-da 2 ədəd onluq data tipi var — float və double:

Tip Ölçü, bayt Adın mənşəyi
float 4 Floating Point Number ifadəsinin qısaldılması
double 8 Double Float ifadəsinin qısaldılması

Hər dəfə proqramın icrası dəyişən yaradılması komandasına çatdıqda, həmin dəyişən üçün kiçik bir yaddaş sahəsi (ölçüsü dəyişənin tipindən asılıdır) ayrılır.

Dəyişənin adresi, onun üçün ayrılmış yaddaş blokunun ilk hücrəsinin adresi hesab edilir.

Java proqramlarına yaddaşa birbaşa müraciət etmək qadağandır. Yaddaşla iş yalnız Java maşını vasitəsilə həyata keçirilir.


3. String Tipi Yaddaşda

String tipi böyük həcmli məlumatları saxlaya bilər, buna görə bu sadəcə bir məlumat tipi deyil, tam hüquqlu bir classdır.

String tipli məlumatlar (mətn) xüsusi bir obyektə yerləşdirilir, onun üçün yaddaş ayrılır və həmin obyektin adresi dəyişənə yerləşdirilir, bunun üçün də yaddaş ayrılır.

a dəyişəni int tipinə aiddir, 4 bayt yer tutur və 1 dəyərini saxlayır.

b dəyişəni int tipinə aiddir, 4 bayt yer tutur və 10,555 dəyərini saxlayır. Vergül ədədi dəyərin ondalıq hissəsi deyil, rəqəmlərin ayırıcı işarəsidir. Ondalığı nöqtə ilə ayrılır.

d dəyişəni double tipinə aiddir, 8 bayt yer tutur və 13.001 dəyərini saxlayır.

str dəyişəni String tipinə aiddir, 4 bayt yer tutur və G13 dəyərini saxlayır — mətn saxlayan obyektin ilk hücrəsinin adresi.

String tipli obyekt (mətn saxlayan) yaddaşın ayrıca blokunda saxlanılır. Onun ilk hücrəsinin adresi str dəyişənində saxlanılır.


4. Niyə proqramlaşdırmada hər şey sıfırdan nömrələnir

İnsanlar çox vaxt təəccüblənirlər ki, niyə proqramlaşdırmada demək olar ki, hər yerdə sıfırdan hesablamaq qəbul olunub. Məsələ burasındadır ki, sıfırdan hesablamanın daha rahat olduğu çoxlu vəziyyətlər var (baxmayaraq ki, 1-dən hesablamağın daha rahat olduğu vəziyyətlər də var).

Belə vəziyyətlərin ən sadəsi – yaddaşın ünvanlanmasıdır. Əgər dəyişəniniz üçün 4 bayt yaddaş ayrılıbsa və sizin X – birinci baytın ünvanıdırsa, onda bütün baytların ünvanları nə olacaq? X+0, X+1, X+2, X+3. Və beləliklə, artıq 0, 1, 2, 3 indeksləri ilə baytlar qrupunu almışıq.

Hər hansı bir məlumat blokunun daxilində nisbi ünvana baxarkən həmişə sıfırdan nömrələmə alırıq. Bu, sıfırdan hesablamanın ilk və ən yayılmış səbəbidir.


Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION