Junior
Ce sunt clasele de tip wrapper în Java?
sobes.tech AI
Răspuns de la AI
Clasele wrapper în Java sunt clase care oferă o reprezentare orientată pe obiecte a tipurilor de date primitive. Ele permit utilizarea valorilor primitive în contexte în care sunt necesare obiecte, de exemplu, în colecții sau în lucrul cu multithreading.
Clasele wrapper principale:
ByteShortIntegerLongFloatDoubleBooleanCharacter
Exemple de utilizare:
Utilizarea tipurilor primitive:
// Tip primitiv
int x = 10;
Utilizarea clasei wrapper:
// Clasa wrapper
Integer y = new Integer(20); // Mod vechi de creare
Integer z = 30; // Autoboxing (convertire automată a primitivului în obiect)
Conversia între primitive și obiecte wrapper:
- Autoboxing: Conversie automată a primitivului în obiect wrapper.
// Autoboxing int primitiveInt = 100; Integer wrapperInt = primitiveInt; - Unboxing: Conversie automată a obiectului wrapper în primitiv.
// Unboxing Integer wrapperInteger = new Integer(200); int primitiveInteger = wrapperInteger;
Avantajele claselor wrapper:
- Lucrul cu colecții: Colecțiile (
List,Set,Map) stochează doar obiecte. - Lucrul cu
null: Obiectele wrapper pot avea valoareanull, spre deosebire de primitive. - Oferă metode utile: Clasele wrapper au metode pentru conversia stringurilor, compararea valorilor etc. De exemplu,
Integer.parseInt(String s). - Lucrul cu generice: Genericele funcționează doar cu obiecte.
Dezavantajele claselor wrapper:
- Consumul de memorie: Obiectele wrapper ocupă mai multă memorie decât primitivele.
- Scăderea performanței: Conversia automată (autoboxing și unboxing) poate reduce ușor performanța. Exemplu de utilizare în colecție:
import java.util.ArrayList;
import java.util.List;
public class WrapperExample {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(10); // Autoboxing
numbers.add(new Integer(20)); // Crearea explicită a obiectului
int firstNum = numbers.get(0); // Unboxing
System.out.println(firstNum);
}
}