Intern
Quelle est la différence entre les types de données primitifs et de référence?
sobes.tech IA
Réponse de l'IA
Les types primitifs stockent directement la valeur, tandis que les types de référence stockent une référence (adresse en mémoire) à l'objet contenant la valeur.
Types primitifs :
- Occupent une taille fixe et petite en mémoire.
- Sont transmis par valeur (la valeur elle-même est copiée).
- Commencent par une minuscule.
- Incluent :
byte,short,int,long,float,double,boolean,char.
// Exemple de type primitif
int a = 10;
int b = a; // La valeur 10 est copiée
b = 20; // Seul b change, a reste 10
Types de référence :
- Occupent différentes quantités de mémoire, dépendant du contenu de l'objet.
- Sont transmis par référence (l'adresse de l'objet est copiée). Modifier l'objet via la référence affecte toutes les variables qui y font référence.
- Commencent généralement par une majuscule (classes).
- Incluent : classes (
String,Object, classes personnalisées), interfaces, tableaux.
// Exemple de type de référence
String str1 = new String("Hello");
String str2 = str1; // La référence à l'objet "Hello" est copiée
str2 = "World"; // str2 pointe maintenant vers un nouvel objet "World". str1 pointe toujours vers "Hello".
// Autre exemple avec un objet mutable
ArrayList<Integer> list1 = new ArrayList<>();
list1.add(1);
ArrayList<Integer> list2 = list1; // La référence au même objet ArrayList est copiée
list2.add(2); // Ajout d'un élément à l'objet accessible via les deux références
// Maintenant, list1 contient [1, 2] et list2 aussi [1, 2]
Tableau comparatif rapide :
| Propriété | Types primitifs | Types de référence |
|---|---|---|
| Stockage | Valeur | Référence à l'objet |
| Transmission | Par valeur | Par référence |
| Taille mémoire | Fixe et petite | Variable |
| Commence par | Minuscule | Généralement majuscule |
| Nullabilité | Ne peuvent pas être null |
Peuvent être null |
Les types primitifs sont enveloppés dans des classes wrapper pour pouvoir les manipuler comme des objets (par exemple, int dans Integer).