1. Come è organizzata la memoria
Ogni computer ha una memoria interna . Che cos'è? Che proprietà ha? E, soprattutto, in che modo ci avvantaggia?
Ogni programma (compresi i programmi scritti in Java) viene caricato nella memoria principale prima di essere eseguito. La memoria principale contiene il codice del programma (che viene eseguito dal processore) ei dati del programma (ovvero i dati che il programma stesso mette in memoria).
Cos'è la memoria e com'è?
Un foglio di calcolo Exсel è composto da celle . Ogni cella ha il proprio identificatore univoco ( A1
, A2
, ... B1
, B2
). Se conosci l' identificatore di una cella , puoi sempre scriverci un valore o ottenere qualunque valore sia memorizzato lì. La memoria del computer è organizzata in modo molto simile.

Il programma ei dati del programma vengono archiviati in memoria quando il programma è in esecuzione. Tutta la memoria del computer è composta da piccole celle chiamate byte . Ad ogni cella è associato un identificatore univoco, o numero: 0
, 1
, 2
, 3
, ...; (la numerazione parte da zero). Se conosciamo il numero di una cella , possiamo salvare i dati al suo interno. O ottenere dati da esso. Alcune celle memorizzano il codice del programma, cioè l'insieme dei comandi per il processore. Altri memorizzano i dati utilizzati dal programma. Il numero di cella è anche chiamato indirizzo di cella .
Il processore sa come eseguire i comandi che sono stati caricati in memoria. Quasi tutti i comandi del processore sono qualcosa come prendere i dati da alcune celle , fare qualcosa con loro , quindi inviare il risultato ad altre celle .
Combiniamo centinaia di semplici comandi per ottenere comandi complessi e utili.
Quando una variabile viene dichiarata nel codice, viene allocata una porzione di memoria che non è già in uso. Questo è di solito pochi byte. La dichiarazione di una variabile richiede di indicare il tipo di informazioni che il programma memorizzerà in essa: numeri, testo o altri dati. Dopotutto, se non si conosce il tipo di informazioni da archiviare, non è chiaro quanto sia grande il blocco di memoria da allocare per la variabile.
Agli albori dell'era dei computer, i programmi funzionavano direttamente con gli indirizzi di memoria, ma poi, per comodità dei programmatori, si cominciò a dare alle celle dei nomi. Un nome di variabile univoco è soprattutto per la comodità dei programmatori, poiché il programma gestisce bene gli indirizzi di memoria semplici.
2. Variabili in memoria
In tutto, Java ha 4 tipi di dati per la memorizzazione di numeri interi. Questi sono byte
, short
e int
.long
Tipo | Dimensione in byte | Origine del nome del tipo |
---|---|---|
byte |
1 |
byte è un respelling deliberato di bite per evitare confusione con bit |
short |
2 |
Abbreviazione di Short Integer |
int |
4 |
Abbreviazione di numero intero |
long |
8 |
Abbreviazione di Long Integer |
Inoltre, Java ha 2 tipi per i numeri reali: float e double:
Tipo | Dimensione in byte | Origine del nome del tipo |
---|---|---|
float |
4 |
Abbreviazione di numero in virgola mobile |
double |
8 |
Abbreviazione di Double Float |
Ogni volta che l'esecuzione del programma raggiunge un comando per creare una variabile, gli viene allocato un piccolo blocco di memoria (la dimensione dipende dal tipo di variabile).
I programmi Java non possono accedere direttamente alla memoria. Qualsiasi lavoro con la memoria avviene solo attraverso la macchina virtuale Java.
3. Il String
tipo in memoria
Il String
tipo può archiviare grandi quantità di dati, il che implica che non è solo un tipo di dati, ma una classe completa.
L' String
oggetto viene posizionato in un blocco di memoria allocato che memorizza l'indirizzo di un altro blocco di memoria in cui è memorizzato il testo.
La int
a
variabile occupa 4
byte e memorizza il valore 1
.
La int
b
variabile occupa 4
byte e memorizza il valore 10,555
. Usiamo una virgola come separatore delle migliaia. E usiamo un punto come separatore decimale.
La double
d
variabile occupa 8
byte e memorizza il valore 13.001
.
La String
str
variabile occupa 4
byte e memorizza il valore G13
, che è l'indirizzo della prima cella del blocco di memoria contenente il testo.
Un testo di String
object
viene memorizzato in un blocco di memoria separato. L'indirizzo della sua prima cella è memorizzato nella str
variabile.
4. Perché la numerazione inizia con zero nella programmazione
Le persone spesso si chiedono perché i programmatori inizino quasi sempre a contare da zero. Ebbene, il fatto è che ci sono molte situazioni in cui è più conveniente contare da zero (ovviamente ci sono anche situazioni in cui è più conveniente contare da 1
).
L'esempio più semplice è l'indirizzamento della memoria. Se alla tua variabile sono stati assegnati 4
byte di memoria e sai che X
è l'indirizzo del primo byte, quali sono gli indirizzi di ciascun byte? , , , . Così semplice, abbiamo un gruppo di byte a cui è possibile accedere con gli indici , , , .X+0
X+1
X+2
X+3
0
1
2
3
Quando pensiamo a un indirizzo relativo all'interno di un blocco di dati, l'indicizzazione da zero è ciò che ha senso. Questa è la ragione principale per contare da zero .
GO TO FULL VERSION