Primitive vs Objet : Comprendre Integer et int en Java
En Java, la différence entre int et Integer découle de leur nature fondamentale.
int : un type de données primitif
int est un type de données primitif qui contient directement la valeur numérique. Il occupe un espace mémoire fixe et stocke la représentation binaire de l'entier.
Integer : une classe Wrapper
Integer, quant à lui, est une classe wrapper qui encapsule une valeur int. Il agit comme n'importe quel autre objet en Java, avec ses propres méthodes et champs. Les variables entières stockent les références aux objets Integer.
Instanciation vs affectation
Le code affiché met en évidence cette distinction :
int n = 9; // Assigns the value 9 to the primitive variable n
Dans ce cas, n stocke directement la valeur entière 9.
// This code won't compile because Integer expects a reference to an object Integer n = 9;
Méthode Invocations
Les classes Wrapper comme Integer fournissent des méthodes qui permettent des opérations sur les valeurs encapsulées. Par exemple :
Integer.parseInt("1") // Parses a string into an int (returns an int)
Puisque int n'est pas une classe, il n'a pas de méthodes comme parseInt.
// This code won't compile int.parseInt("1")
Autoboxing et Unboxing
Java 5 a introduit l'autoboxing et le unboxing, qui convertissent automatiquement entre les types primitifs et wrapper. Cette commodité peut introduire des bugs subtils et des problèmes de performances, c'est pourquoi des conversions explicites sont recommandées.
Hiérarchie des classes Wrapper
Tous les types primitifs en Java ont des classes wrapper équivalentes : Octet (octet ), Short (court), Integer (int), Long (long), Boolean (booléen), Character (char), Float (float) et Double (double).
Les classes Wrapper étendent la classe Object, leur permettant d'être utilisées dans des collections et des génériques où des références d'objet sont requises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!