1. Hogyan szerveződik az emlékezet

Minden számítógép rendelkezik belső memóriával . Mi az? Milyen tulajdonságai vannak? És ami a legfontosabb: milyen hasznunkra válik ez?

Minden program (beleértve a Java nyelven írt programokat is ) végrehajtása előtt betöltődik a fő memóriába . A főmemória tartalmazza a programkódot (amelyet a processzor hajt végre), valamint a programadatokat (azaz az adatokat, amelyeket a program maga helyez el a memóriába).

Mi a memória és milyen?

Az Exсel-táblázat cellákból áll . Minden cellának saját egyedi azonosítója van ( A1, A2, ... B1, B2). Ha ismeri egy cella azonosítóját , akkor mindig írhat bele valamilyen értéket, vagy lekérheti az ott tárolt értéket. A számítógép memóriája nagyon hasonló módon szerveződik.

A program és a programadatok a program futása közben a memóriában tárolódnak . A számítógép összes memóriája kis cellákból, úgynevezett bájtokból áll . Minden cellához egyedi azonosító vagy szám tartozik: 0, 1, 2, 3, ...; (a számozás nulláról indul). Ha ismerjük egy cella számát , adatokat menthetünk bele. Vagy szerezz be belőle adatokat. Egyes cellák a program kódját, azaz a processzor parancskészletét tárolják. Mások a program által használt adatokat tárolják. A cella számát cellacímnek is nevezik .

A processzor tudja, hogyan kell végrehajtani a memóriába betöltött parancsokat. Szinte minden processzorparancs olyasmi, hogy adatokat vesz egyes cellákból , csinál velük valamit , majd az eredményt elküldi más celláknak .

Több száz egyszerű parancsot kombinálunk, hogy összetett és hasznos parancsokat kapjunk.

Amikor egy változót a kódban deklarálnak, egy olyan memóriarész kerül lefoglalásra, amelyet még nem használnak. Ez általában néhány bájt. Egy változó deklarálásához meg kell adni, hogy a program milyen típusú információkat fog tárolni benne: számokat, szöveget vagy egyéb adatokat. Végül is, ha nem ismeri a tárolandó információ típusát, akkor nem világos, hogy mekkora memóriablokkot kell lefoglalni a változóhoz.

A számítógép-korszak hajnalán a programok közvetlenül memóriacímekkel dolgoztak, de aztán a programozók kényelme érdekében a cellákat elkezdték elnevezni. Az egyedi változónév mindenekelőtt a programozók kényelmét szolgálja, mivel a program jól kezeli a sima memóriacímeket.


2. Változók a memóriában

Összességében a Java 4 adattípussal rendelkezik az egész számok tárolására. Ezek a byte, short, intés long.

típus Méret bájtban A típus nevének eredete
byte 1 A byte a bitet szándékos elírása, hogy elkerüljük a bittel való összekeverést
short 2 Rövid egész szám
int 4 Az Integer rövidítése
long 8 A Long Integer rövidítése

Ezenkívül a Java 2 típusú valós számmal rendelkezik: float és double:

típus Méret bájtban A típus nevének eredete
float 4 A lebegőpontos szám rövidítése
double 8 A Double Float rövidítése

Minden alkalommal, amikor a program végrehajtása elér egy változó létrehozására irányuló parancsot, egy kis memóriablokk kerül lefoglalásra (a változó típusától függ).

Egy változó címe a lefoglalt memóriablokk első cellájának címe.

A Java programok nem férhetnek hozzá közvetlenül a memóriához. A memóriával végzett minden munka csak a Java virtuális gépen keresztül történik.


3. A Stringtípus a memóriában

A Stringtípus nagy mennyiségű adatot képes tárolni, ami azt jelenti, hogy nem csak egy adattípus, hanem egy teljes értékű osztály.

Az Stringobjektum egy lefoglalt memóriablokkba kerül, amely egy másik memóriablokk címét tárolja, amelyben a szöveg tárolva van.

A int aváltozó 4bájtokat foglal el és tárolja az értéket 1.

A int bváltozó 4bájtokat foglal el és tárolja az értéket 10,555. Ezres elválasztóként vesszőt használunk. És pontot használunk tizedes elválasztóként.

A double dváltozó 8bájtokat foglal el és tárolja az értéket 13.001.

A String strváltozó 4bájtokat foglal el és tárolja az értéket G13, amely a szöveget tartalmazó memóriablokk első cellájának címe.

A szöveg String objectegy külön memóriablokkban van tárolva. Az első cellájának címe a változóban tárolódik str.


4. Miért nullával kezdődik a számozás a programozásban?

Az emberek gyakran csodálkoznak azon, hogy a programozók miért kezdenek szinte mindig nulláról számolni. Nos, az tény, hogy sok olyan helyzet van, amikor kényelmesebb nullától számolni (persze vannak olyan helyzetek is, amikor kényelmesebb -tól 1).

A legegyszerűbb példa erre a memóriacímzés. 4Ha a változónk memóriabájtokat foglalt le , és tudja, hogy Xez az első bájt címe, akkor mi az egyes bájtok címe? , , , . Ilyen egyszerű: van egy bájtcsoportunk, amely , , , indexekkel érhető el .X+0X+1X+2X+30123

Ha egy adatblokkon belüli relatív címre gondolunk, a nullától kezdődő indexelésnek van értelme. Ez a fő oka a nullától való számolásnak .