Maison > Java > javaDidacticiel > le corps du texte

Int et Integer de Java : primitif ou objet : quelle est la différence ?

Barbara Streisand
Libérer: 2024-11-24 11:27:11
original
398 Les gens l'ont consulté

Java's int and Integer: Primitive vs. Object—What's the Difference?

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
Copier après la connexion

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;
Copier après la connexion

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)
Copier après la connexion

Puisque int n'est pas une classe, il n'a pas de méthodes comme parseInt.

// This code won't compile
int.parseInt("1")
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal