1. Comment la mémoire est organisée

Chaque ordinateur a une mémoire interne . Qu'est-ce que c'est? Quelles propriétés possède-t-il ? Et, surtout, comment cela nous profite-t-il ?

Chaque programme (y compris les programmes écrits en Java) est chargé dans la mémoire principale avant d'être exécuté. La mémoire principale contient le code du programme (qui est exécuté par le processeur) ainsi que les données du programme (c'est-à-dire les données que le programme lui-même met en mémoire).

Qu'est-ce que la mémoire et à quoi ressemble-t-elle ?

Une feuille de calcul Excel se compose de cellules . Chaque cellule a son propre identifiant unique ( A1, A2, ... B1, B2). Si vous connaissez l'identifiant d'une cellule , vous pouvez toujours y écrire une valeur ou obtenir la valeur qui y est stockée. La mémoire de l'ordinateur est organisée de manière très similaire.

Le programme et les données de programme sont stockés en mémoire lorsque le programme est en cours d'exécution. Toute la mémoire de l'ordinateur est composée de petites cellules appelées octets . Chaque cellule est associée à un identifiant unique, ou numéro : 0, 1, 2, 3, ... ; (la numérotation commence à zéro). Si nous connaissons le numéro d'une cellule , nous pouvons y enregistrer des données. Ou obtenir des données à partir de celui-ci. Certaines cellules stockent le code du programme, c'est-à-dire l'ensemble des commandes du processeur. D'autres stockent les données utilisées par le programme. Le numéro de la cellule est également appelé l' adresse de la cellule .

Le processeur sait comment exécuter les commandes qui ont été chargées en mémoire. Presque toutes les commandes du processeur sont quelque chose comme prendre des données de certaines cellules , en faire quelque chose , puis envoyer le résultat à d'autres cellules .

Nous combinons des centaines de commandes simples pour obtenir des commandes complexes et utiles.

Lorsqu'une variable est déclarée dans le code, un morceau de mémoire qui n'est pas déjà utilisé lui est alloué. Il s'agit généralement de quelques octets. La déclaration d'une variable nécessite que vous indiquiez le type d'informations que le programme y stockera : nombres, texte ou autres données. Après tout, si vous ne connaissez pas le type d'informations à stocker, la taille d'un bloc de mémoire qui doit être allouée à la variable n'est pas claire.

À l'aube de l'ère informatique, les programmes fonctionnaient directement avec des adresses mémoire, mais ensuite, pour la commodité des programmeurs, les cellules ont commencé à recevoir des noms. Un nom de variable unique est avant tout pour la commodité des programmeurs, car le programme gère très bien les adresses mémoire simples.


2. Variables en mémoire

En tout, Java dispose de 4 types de données pour stocker des entiers. Ce sont byte, shortet int.long

Taper Taille en octets Origine du nom du type
byte 1 byte est une réécriture délibérée de bite pour éviter toute confusion avec bit
short 2 Abréviation d'entier court
int 4 Abréviation de entier
long 8 Abréviation d' entier long

De plus, Java a 2 types pour les nombres réels : float et double :

Taper Taille en octets Origine du nom du type
float 4 Abréviation de nombre à virgule flottante
double 8 Abréviation de Double Float

Chaque fois que l'exécution du programme atteint une commande pour créer une variable, un petit bloc de mémoire lui est alloué (la taille dépend du type de la variable).

L'adresse d'une variable est l'adresse de la première cellule du bloc mémoire alloué.

Les programmes Java ne sont pas autorisés à accéder directement à la mémoire. Tout travail avec la mémoire se produit uniquement via la machine virtuelle Java.


3. Le Stringtype en mémoire

Le Stringtype peut stocker de grandes quantités de données, ce qui implique qu'il ne s'agit pas simplement d'un type de données, mais d'une classe à part entière.

L' Stringobjet est placé dans un bloc de mémoire alloué qui stocke l'adresse d'un autre bloc de mémoire dans lequel le texte est stocké.

La int avariable occupe 4des octets et stocke la valeur 1.

La int bvariable occupe 4des octets et stocke la valeur 10,555. Nous utilisons une virgule comme séparateur de milliers. Et nous utilisons un point comme séparateur décimal.

La double dvariable occupe 8des octets et stocke la valeur 13.001.

La String strvariable occupe 4des octets et stocke la valeur G13, qui est l'adresse de la première cellule du bloc mémoire contenant le texte.

Un texte du String objectest stocké dans un bloc de mémoire séparé. L'adresse de sa première cellule est stockée dans la strvariable.


4. Pourquoi la numérotation commence par zéro en programmation

Les gens se demandent souvent pourquoi les programmeurs commencent presque toujours à compter à partir de zéro. Eh bien, le fait est qu'il existe de nombreuses situations où il est plus pratique de compter à partir de zéro (bien sûr, il existe également des situations où il est plus pratique de compter à partir de 1).

L'exemple le plus simple est l'adressage mémoire. Si votre variable s'est vu allouer 4des octets de mémoire et que vous savez qu'il Xs'agit de l'adresse du premier octet, alors quelles sont les adresses de chaque octet ? , , , . Aussi simple que cela, nous avons un groupe d'octets accessibles avec les indices , , , .X+0X+1X+2X+30123

Lorsque nous pensons à une adresse relative dans un bloc de données, l'indexation à partir de zéro est ce qui a du sens. C'est la principale raison de compter à partir de zéro .