Aller au contenu

Java — Autoboxing (Conversion automatique)

L’autoboxing est un mécanisme en Java qui permet de convertir automatiquement un type primitif en objet.


1. Idée simple

autoboxing = conversion automatique

➡️ primitive → objet


2. Exemple simple

int x = 10;
Integer y = x; // autoboxing

Java transforme automatiquement :

Integer y = Integer.valueOf(x);

3. Unboxing (inverse)

conversion objet → primitive

Integer y = 10;
int x = y; // unboxing

équivalent :

int x = y.intValue();

4. Types concernés

Primitif Objet
int Integer
double Double
boolean Boolean
char Character

5. Piège important (null)

Integer x = null;
int y = x; // ❌ NullPointerException

pourquoi ?

  • unboxing tente de convertir null → erreur

6. Piège performance

Integer sum = 0;

for (int i = 0; i < 1000; i++) {
    sum += i; // autoboxing + unboxing à chaque tour
}

problème :

  • création d’objets inutile
  • impact performance

7. Où ça arrive souvent

  • collections (List<Integer>)
  • comparaisons
  • opérations math

Pièges fréquents

  • null → crash
  • performance
  • confusion entre == et .equals()

8. Questions classiques

Q1

autoboxing = ? primitive → objet


Q2

unboxing = ? objet → primitive


Q3

danger principal ? NullPointerException


9. À retenir

  • autoboxing est automatique
  • simplifie le code
  • peut cacher des coûts
  • attention au null

🧾 En résumé

  • primitive → objet (autoboxing)
  • objet → primitive (unboxing)
  • pratique mais à utiliser avec prudence

L’autoboxing est simple, mais peut introduire des bugs subtils et des problèmes de performance.


Voir aussi