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).
Programele Java nu au voie să acceseze direct memoria. Orice lucru cu memorie are loc numai prin intermediul mașinii virtuale Java.
3. String
Tipul din memorie
Tipul String
poate stoca cantități mari de date, ceea ce înseamnă că nu este doar un tip de date, ci o clasă cu drepturi depline.
Obiectul String
este plasat într-un bloc de memorie alocat care stochează adresa unui alt bloc de memorie în care este stocat textul.
Variabila int
a
ocupă 4
octeți și stochează valoarea 1
.
Variabila int
b
ocupă 4
octeți și stochează valoarea 10,555
. Folosim virgulă ca separator de mii. Și folosim un punct ca separator zecimal.
Variabila double
d
ocupă 8
octeți și stochează valoarea 13.001
.
Variabila String
str
ocupă 4
octeți și stochează valoarea G13
, care este adresa primei celule a blocului de memorie care conține textul.
Un text al String
object
este stocat într-un bloc separat de memorie. Adresa primei sale celule este stocată în str
variabilă.
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 4
octeți de memorie și știți că aceasta X
este 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+0
X+1
X+2
X+3
0
1
2
3
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 .