JavaRush /Kurslar /All lectures for UZ purposes /Yodlash manzili va o'zgaruvchilar

Yodlash manzili va o'zgaruvchilar

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Yodlash qurilmasi

Har bir kompyuterda tezkor xotira mavjud. Bu nima va qanday xususiyatlarga ega va, eng muhimi, bu bizga qanday foyda keltiradi?

Har bir dastur (shu jumladan, Java dasturlari) bajarilishdan oldin tezkor xotiraga yuklanadi. Tezkor xotirada dastur kodi (protsessor tomonidan bajariladigan) va dastur ma'lumotlari (dastur ularga xotirada joy ajratadi) joylashadi.

Xo'sh, tezkor xotira nima va u nimaga o'xshaydi?

Excel’ni tasavvur qiling 😎 Excel sahifasi kataklardan iborat, har bir katakning o'ziga xos raqami bor (A1, A2, ... B1, B2). Katak raqamini bilib, unga ma'lum bir qiymat kiritishingiz yoki saqlanayotgan qiymatni olishingiz mumkin. Kompyuterning xotirasi juda o'xshash tarzda tashkil etilgan.

Dastur va uning ma'lumotlari ishlash vaqtida xotirada saqlanadi. Kompyuterning barcha xotirasi kichik kataklar – baytlar ko'rinishida taqdim etiladi. Har bir katakning o'ziga xos raqami bor – 0, 1, 2, 3, ...; (raqamlanish noldan boshlanadi). Katak raqamini bilib, biz ushbu katakka ma'lumotlarni saqlashimiz yoki ularni undan olishimiz mumkin. Ba'zi kataklarda dastur kodi - protsessor uchun buyruqlar to'plami, boshqalarida esa ushbu dasturning ma'lumotlari saqlanadi. Katak raqami shuningdek katak manzili deb ham ataladi.

Protsessor yuklangan dasturdan buyruqlarni bajarishni biladi. Protsessorning deyarli barcha buyruqlari — bu qaysidir ma'noda: ba’zi kataklardan ma'lumotlarni olish → ular bilan nimadir qilish → natijani boshqa kataklarga joylashtirish

Sodda buyruqlarning yuzlab qo'shimchalarini birlashtirib, murakkab va foydali buyruqlarni olamiz.

Kodda o'zgaruvchi e'lon qilinganda, unga hali foydalanilmagan xotiradan joy ajratiladi. Odatda bu bir necha bayt bo'ladi. O'zgaruvchi e'lon qilinganda, unda saqlanadigan ma'lumotning turini ko'rsatish kerak: raqamlar, matn yoki boshqa ma’lumotlar. Chunki ma'lumot turi aniq bo'lmagan holda, o'zgaruvchi uchun qancha xotira ajratish kerakligini bilish qiyin.

Kompyuter texnologiyasi paydo bo'lgan davrda dasturlar xotira kataklarining raqamlari bilan ishlardi, ammo keyinchalik dasturchilar uchun qulaylik uchun kataklarga nom berildi. Noyob o'zgaruvchi nomi — bu birinchi navbatda dasturchilar uchun qulaylik, dastur esa bajarilish vaqtida ularni raqamlar bilan ham tartibda ishlata olardi.


2. Xotirada o'zgaruvchilar

Java’da butun sonlarni saqlash uchun jami 4 turdagi ma'lumot turi mavjud: byte, short, int va long.

Tur Hajmi, bayt Nomi kelib chiqishi
byte 1 Byte, chunki u bir bayt xotirani egallaydi
short 2 Short Integerdan qisqartma
int 4 Integerdan qisqartma
long 8 Long Integerdan qisqartma

Sifatida, Java’da 2 turdagi haqiqiy sonlar tur mavjud — float va double:

Tur Hajmi, bayt Nomi kelib chiqishi
float 4 Floating Point Numberdan qisqartma
double 8 Double Floatdan qisqartma

Har safar, dasturning ishlashida o'zgaruvchi yaratilishi haqida buyruqqa kelganda, unga kichik bir xotira maydoni ajratiladi (o'zgaruvchining turiga qarab hajmi).

O'zgaruvchining manzili ajratilgan xotira bloki ichidagi birinchi katak manzili hisoblanadi.

Java-dasturlariga to'g'ridan-to'g'ri xotira bilan ishlash taqiqlangan. Barcha xotira bilan bog'liq ishlar faqat Java-mashina orqali amalga oshiriladi.


3. Xotirada String turi

String turi katta hajmdagi ma'lumotlarni saqlay oladi, shuning uchun bu faqatgina ma'lumot turi emas, balki to'liq bir klass.

String turi (matn) ma'lumotlari maxsus ob'ektga joylashtiriladi, unga xotira ajratiladi, va shu ob'ektning manzili ham xotira ajratilgan o'zgaruvchiga joylashtiriladi.

a o'zgaruvchisi int turi bo'lib, 4 baytni egallaydi va 1 qiymatni saqlaydi.

b o'zgaruvchisi int turi bo'lib, 4 baytni egallaydi va 10,555 qiymatni saqlaydi. Vergul - bu sonning kasr qismi emas, balki raqam ajratgich. Kasr qismi nuqta bilan ajratiladi

d o'zgaruvchisi double turi bo'lib, 8 baytni egallaydi va 13.001 qiymatni saqlaydi.

str o'zgaruvchisi String turi bo'lib, 4 baytni egallaydi va G13 qiymatni saqlaydi — matnni o'z ichiga olgan ob'ektning birinchi katak manzili.

Object turi String (matnni o'z ichiga olgan) alohida xotira blokida saqlanadi. Uning birinchi katak manzili str o'zgaruvchisida saqlanadi.


4. Dasturlashda hamma narsa nega noldan nishonlanadi

Odamlar ko'pincha hayron qolishadi, nega dasturlashda hamma joyda deyarli noldan hisoblash qabul qilingan. Bu, chunki juda ko'p holatlar mavjud, u holda noldan boshlash qulayroq (garchi ba'zi vaziyatlarda 1 dan hisoblash qulayroq).

Eng oddiy holat bu - xotira manzillanishi. Agar sizning o'zgaruvchingizga 4 bayt xotira ajratilgan bo'lsa va sizda X birinchi baytning manzili mavjud bo'lsa, u holda barcha baytlarning manzillari qanday bo'ladi? X+0, X+1, X+2, X+3. Mana, bizda nollash indekslari bilan baytlar guruhi bor.

Biz nimaningdir ichidagi nisbiy manzil haqida o'ylashda, har doim noldan hisoblashni olamiz. Bu eng birinchi va eng keng tarqalgan noldan hisoblash sababu.


Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION