Java >> Java-zelfstudie >  >> Java

Autoboxen en unboxen in Java

Autoboxing en Unboxing in Java

Autoboxing en Unboxing zijn de functies van Java 1.5 , waarbij de automatische conversie plaatsvindt van het primitieve type naar het overeenkomstige type Wrapper Class en vice versa.



Autoboxen

Autoboxing is het proces van het converteren van een primitief type gegevens in het bijbehorende wrapper class-object voorbeeld. Het omvat de dynamische toewijzing van geheugen en initialisatie van een object voor elke primitief. Bij autoboxing is het niet nodig om expliciet een object te construeren.

voorbeeld:

 
int j = 1000;
Integer intr = j; // Autoboxing

Uitpakken

Unboxing is het proces van het converteren van een wrapperinstantie in een primitief type . Het is een proces waarbij de waarde van een objecttype in een doos automatisch uit de verpakking wordt gehaald wanneer de waarde ervan vereist is. Om dit te doen, is het niet nodig om een ​​methode zoals doubleValue() of intValue() aan te roepen.

voorbeeld:

 
Integer intr = new Integer(100);
int i = intr; // Unboxing

Wanneer nodig?

Wanneer een methode een wrapper-klasseobject verwacht, maar de waarde die als parameter wordt doorgegeven, een primitief type is. Wanneer primitieve waarde wordt toegewezen aan wrapper-klassevariabele of omgekeerd.

Voordelen

Het is niet nodig om het object expliciet te maken en de waarde van het primitieve type in te pakken.

Nadeel

"Autoboxing" is te onverwacht in zijn gedrag en kan gemakkelijk resulteren in moeilijk te herkennen fouten.

Prestaties

Autoboxing creëert objecten die niet duidelijk zichtbaar zijn in de code. Dus wanneer autoboxing optreedt, lijden de prestaties eronder.

Wat is een Wrapper-klasse?

Een wrapper-klasse is een klasse die 'omwikkelt' de functionaliteit van een andere klasse of component. Dat wil zeggen, het wikkelt zich rond een primitief gegevenstype en geeft het het uiterlijk van een object. Het voordeel is dat het kan worden gebruikt wanneer het primitieve gegevenstype als object vereist is. Wrapper-klasse biedt een breed scala aan functies die op de primitieve typen kunnen worden uitgevoerd.



Java-tag