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.