0008JDK源码分析之一分钟看透自动装箱和拆箱

Posted Java框架源码分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0008JDK源码分析之一分钟看透自动装箱和拆箱相关的知识,希望对你有一定的参考价值。

本文将介绍JDK是如何实现自动装箱和拆箱的,以Integer为例,建议阅读时间三分钟以内。

本文大纲:

一、自动装箱原理

二、自动拆箱原理

三、反编译验证

一、自动装箱原理

我们先看这么一行代码:Integer num =10;左边定义的是Integer对象类型,右边却是原始类型int。JDK提供了自动装箱机制,就是可以将int自动转换为Integer,其实原理很简单,就是调用了Integer.valueOf(int i)这个方法来实现的,编译器做了自动转换。

二、自动拆箱原理

我们再看这行代码:int n = new Integer(10);这和上面的刚好相反,编译器的转换是调用了Integer的intValue()这个方法将对象转换为了原始类型,这就是自动拆箱。

三、反编译验证

看一个简单的小案例,我们将其编译后的类进行反编译,看看编译器做的事情是否真的如我们上面分析的一样。

【0008】JDK源码分析之一分钟看透自动装箱和拆箱

四、总结

看似深奥的东西,有时候深入去了解之后,原来并不是那么神奇。明白了自动装箱和拆箱之后,那么下面这个单元测试会是绿条(PASS)吗?

提示:联想一下整数常量池的内容,可以参考我的上一篇文章。

感谢您的阅读,祝你答对!

以上是关于0008JDK源码分析之一分钟看透自动装箱和拆箱的主要内容,如果未能解决你的问题,请参考以下文章

自动装箱和拆箱的几个细节

自动装箱和拆箱

Java基础 自动装箱和拆箱面试题

深入剖析Java中的装箱和拆箱

Java的自动装箱和拆箱的简单讲解

java 自动装箱和拆箱