前言
在之前的两篇文章中,壹哥给大家介绍了Java中的包装类及其特点、用法,但是这些内容主要是停留在”怎么用“的层面,没有太多涉及”为什么“,所以接下来壹哥会给大家讲一讲Integer这个包装类的底层原理。在现在的就业环境下,我们需要知其然,还要知其所以然,才能更好地满足就业需求。
------------------------------前戏已做完,精彩即开始----------------------------
全文大约【3200】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......
一. Integer底层原理探究
1. int和Integer的区别
在前面的内容介绍中,壹哥给大家讲过Integer这个类,现在大家对它的用法应该都比较清楚了。但是除了要掌握Integer的用法之外,我们还要了解它的一些底层内容,因为在面试时,关于Integer的底层考察的比较多。比如一个常见的面试题是这样的:请问int和Integer的区别有哪些?
面对这样的一道题目,你该怎么回答?常规的答案其实很容易答出来,比如:
● int是基本数据类型,代表整型数据,默认值是0;
● Integer是 int的包装类,属于引用类型,默认值为null;
● int 和 Integer 都可以表示某一个整型数值;
● Integer变量实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值;
● Integer可以区分出未赋值和值为 0 的区别,而int 则无法表达出未赋值的情况;
● int 和 Integer 不能够互用,因为他们是两种不同的数据类型;
● int在初始化时,可以直接写成 int=1 的形式;
● 因为Integer是包装类型,使用时可以采用 Integer i = new Integer(1) 的形式,但因为Java中的自动装箱和拆箱机制,使得对Integer类的赋值也可以使用 Integer i= 1 的形式;
●