Junior
Wat zijn de wrapper-classes in Java?
sobes.tech AI
Antwoord van AI
Wrapper-klassen in Java zijn klassen die een objectgeoriënteerde representatie bieden van primitieve datatypes. Ze stellen je in staat om primitieve waarden te gebruiken in contexten waar objecten vereist zijn, bijvoorbeeld in collecties of bij multithreading.
Belangrijkste wrapper-klassen:
ByteShortIntegerLongFloatDoubleBooleanCharacter
Voorbeelden van gebruik:
Gebruik van primitieve types:
// Primitief type
int x = 10;
Gebruik van de wrapper-klasse:
// Wrapper-klasse
Integer y = new Integer(20); // Verouderde manier van maken
Integer z = 30; // Autoboxing (automatische conversie van primitief naar object)
Conversie tussen primitieve types en wrapper-objecten:
- Autoboxing: Automatische conversie van primitief naar wrapper-object.
// Autoboxing int primitiveInt = 100; Integer wrapperInt = primitiveInt; - Unboxing: Automatische conversie van wrapper-object naar primitief.
// Unboxing Integer wrapperInteger = new Integer(200); int primitiveInteger = wrapperInteger;
Voordelen van wrapper-klassen:
- Werken met collecties: Collecties (
List,Set,Map) slaan alleen objecten op. - Werken met
null: Wrapper-objecten kunnen de waardenullhebben, in tegenstelling tot primitieve types. - Bieden nuttige methoden: Wrapper-klassen hebben methoden voor het converteren van strings, vergelijken van waarden, etc. Bijvoorbeeld,
Integer.parseInt(String s). - Werken met generics: Generics werken alleen met objecten.
Nadelen van wrapper-klassen:
- Geheugengebruik: Wrapper-objecten nemen meer geheugen in beslag dan primitieve types.
- Prestatieverlies: Automatische conversie (autoboxing en unboxing) kan de prestaties licht verminderen. Voorbeeld van gebruik in een collectie:
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)); // Expliciete creatie van het object
int firstNum = numbers.get(0); // Unboxing
System.out.println(firstNum);
}
}