Home > Java > javaTutorial > body text

How Do Auto Boxing and Unboxing Really Work in Java?

Linda Hamilton
Release: 2024-11-19 19:11:03
Original
684 people have browsed it

How Do Auto Boxing and Unboxing Really Work in Java?

Auto Boxing and Unboxing in Java: Unveiling the Hidden Mechanisms

Auto boxing and unboxing, introduced in Java JDK 5.0, simplify the conversion between primitive types and their corresponding wrapper classes. However, the exact workings of these concepts can be perplexing.

Auto Boxing: The Multifaceted Wrapper

Initially, it might seem like auto boxing relies solely on the constructor implemented in the wrapper class. However, delving into the bytecode for Integer.class reveals a different story.

Integer n = 42;
Copy after login

Compiles to:

0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: astore_1      
Copy after login

The bytecode utilizes the valueOf() method instead of the constructor. This approach offers advantages such as caching, avoiding the creation of redundant objects.

Auto Unboxing: Retrieving the Primitive Essence

Similarly, auto unboxing involves retrieving the primitive value wrapped within the object via the intValue() method for integers, or analogous methods for other wrapper types.

int n = Integer.valueOf(42);
Copy after login

Compiles to:

0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: invokevirtual #22                 // Method java/lang/Integer.intValue:()I
8: istore_1      
Copy after login

Conclusion

In essence, auto boxing and unboxing operate by invoking the appropriate static valueOf() or instance intValue() methods on the wrapper classes. This mechanism provides seamless conversion between primitive and object-based representations, enhancing code readability and efficiency.

The above is the detailed content of How Do Auto Boxing and Unboxing Really Work in Java?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template