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()这个方法将对象转换为了原始类型,这就是自动拆箱。
三、反编译验证
看一个简单的小案例,我们将其编译后的类进行反编译,看看编译器做的事情是否真的如我们上面分析的一样。
四、总结
看似深奥的东西,有时候深入去了解之后,原来并不是那么神奇。明白了自动装箱和拆箱之后,那么下面这个单元测试会是绿条(PASS)吗?
提示:联想一下整数常量池的内容,可以参考我的上一篇文章。
感谢您的阅读,祝你答对!
以上是关于0008JDK源码分析之一分钟看透自动装箱和拆箱的主要内容,如果未能解决你的问题,请参考以下文章