1. Cum este organizată memoria

Fiecare computer are memorie internă . Ce este? Ce proprietăți are? Și, cel mai important, cum ne avantajează?

Fiecare program (inclusiv programele scrise în Java) este încărcat în memoria principală înainte de a fi executat. Memoria principală conține codul programului (care este executat de procesor), precum și datele programului (adică date pe care programul însuși le pune în memorie).

Ce este memoria și cum este ea?

O foaie de calcul Excel este formată din celule . Fiecare celulă are propriul său identificator unic ( A1, A2, ... B1, B2). Dacă cunoașteți identificatorul unei celule , atunci puteți oricând să scrieți o valoare în ea sau să obțineți orice valoare stocată acolo. Memoria computerului este organizată într-un mod foarte asemănător.

Programul și datele programului sunt stocate în memorie atunci când programul rulează. Toată memoria computerului este compusă din celule mici numite octeți . Fiecare celulă are asociat un identificator unic, sau număr: 0, 1, 2, 3, ...; (numerotarea începe de la zero). Dacă știm numărul unei celule , putem salva date în ea. Sau obțineți date din el. Unele celule stochează codul programului, adică setul de comenzi pentru procesor. Alții stochează datele utilizate de program. Numărul celulei se mai numește și adresa celulei .

Procesorul știe cum să execute comenzile care au fost încărcate în memorie. Aproape toate comenzile procesorului sunt ceva de genul a lua date de la unele celule , face ceva cu ele , apoi trimite rezultatul la alte celule .

Combinăm sute de comenzi simple pentru a obține comenzi complexe și utile.

Când o variabilă este declarată în cod, o bucată de memorie care nu este deja utilizată este alocată pentru aceasta. Acesta este de obicei câțiva octeți. Declararea unei variabile necesită să indicați tipul de informații pe care programul îl va stoca în ea: numere, text sau alte date. La urma urmei, dacă nu cunoașteți tipul de informații care urmează să fie stocate, atunci nu este clar cât de mare dintr-un bloc de memorie trebuie să fie alocat pentru variabilă.

În zorii erei computerelor, programele lucrau direct cu adrese de memorie, dar apoi, pentru comoditatea programatorilor, celulele au început să primească nume. Un nume unic de variabilă este mai ales pentru confortul programatorilor, deoarece programul gestionează foarte bine adresele de memorie simple.


2. Variabile în memorie

În total, Java are 4 tipuri de date pentru stocarea numerelor întregi. Acestea sunt byte, short, intși long.

Tip Dimensiunea în octeți Originea numelui tipului
byte 1 byte este o repeling deliberată a bite pentru a evita confuzia cu bit
short 2 Scurt pentru scurt întreg
int 4 Prescurtare pentru Integer
long 8 Prelucrare pentru Long Integer

În plus, Java are 2 tipuri de numere reale: float și double:

Tip Dimensiunea în octeți Originea numelui tipului
float 4 Prescurtare pentru numărul în virgulă mobilă
double 8 Scurt pentru Double Float

De fiecare dată când execuția unui program ajunge la o comandă pentru a crea o variabilă, i se alocă un bloc mic de memorie (dimensiunea depinde de tipul variabilei).

Adresa unei variabile este adresa primei celule a blocului de memorie alocat.

Programele Java nu au voie să acceseze direct memoria. Orice lucru cu memorie are loc numai prin intermediul mașinii virtuale Java.


3. StringTipul din memorie

Tipul Stringpoate stoca cantități mari de date, ceea ce înseamnă că nu este doar un tip de date, ci o clasă cu drepturi depline.

Obiectul Stringeste plasat într-un bloc de memorie alocat care stochează adresa unui alt bloc de memorie în care este stocat textul.

Variabila int aocupă 4octeți și stochează valoarea 1.

Variabila int bocupă 4octeți și stochează valoarea 10,555. Folosim virgulă ca separator de mii. Și folosim un punct ca separator zecimal.

Variabila double docupă 8octeți și stochează valoarea 13.001.

Variabila String strocupă 4octeți și stochează valoarea G13, care este adresa primei celule a blocului de memorie care conține textul.

Un text al String objecteste stocat într-un bloc separat de memorie. Adresa primei sale celule este stocată în strvariabilă.


4. De ce numerotarea începe cu zero în programare

Oamenii se întreabă adesea de ce programatorii încep aproape întotdeauna să numere de la zero. Ei bine, adevărul este că sunt multe situații în care este mai convenabil să numeri de la zero (desigur, există și situații în care este mai convenabil să numeri de la 1).

Cel mai simplu exemplu este adresarea de memorie. Dacă variabilei dvs. au fost alocați 4octeți de memorie și știți că aceasta Xeste adresa primului octet, atunci care sunt adresele fiecărui octet? , , , . La fel de simplu, avem un grup de octeți care pot fi accesați cu indici , , , .X+0X+1X+2X+30123

Când ne gândim la o adresă relativă într-un bloc de date, indexarea de la zero este ceea ce are sens. Acesta este motivul principal pentru a număra de la zero .