BoxingUnboxing - 420111aut25/cours420111 GitHub Wiki


📦 Boxing et Unboxing en Java

Le boxing et unboxing permettent de convertir automatiquement entre types primitifs et leurs classes wrapper (objets).


1. Qu’est-ce que c’est ?

  • Boxing : conversion d’un type primitif en son objet wrapper.
  • Unboxing : conversion d’un objet wrapper en type primitif.

2. Les classes wrappers principales

Type primitif Classe wrapper
int Integer
double Double
boolean Boolean
char Character
long Long
float Float
short Short
byte Byte

3. Exemple de boxing

int a = 5;
Integer boxed = a;       // Boxing automatique

4. Exemple d’unboxing

Integer obj = 10;
int prim = obj;          // Unboxing automatique

5. Pourquoi c’est utile ?

  • Permet d’utiliser des types primitifs dans des collections qui demandent des objets (ArrayList<Integer> par exemple).
  • Simplifie le code en évitant les conversions manuelles (intValue(), doubleValue()).

6. Conversion manuelle (ancienne méthode)

Avant Java 5, il fallait faire explicitement :

Integer boxed = Integer.valueOf(a);  // Boxing manuel
int prim = boxed.intValue();          // Unboxing manuel

7. Attention

  • Le boxing/unboxing automatique peut créer des coûts de performance s’il est fait trop souvent.
  • Toujours préférer les types primitifs quand possible pour optimiser.

🧠 À retenir

  • Boxing = primitif → objet wrapper.
  • Unboxing = objet wrapper → primitif.
  • C’est automatique depuis Java 5.
  • Utilisé surtout avec les collections et API qui fonctionnent avec objets.

⚠️ **GitHub.com Fallback** ⚠️