Java专题Android面试题解析

面试题:Java中有了基本数据类型,为何还要有对应的包装器类?

2020-09-23  本文已影响0人  千夜零一

引言

  你有没有想过,为了什么Java中已经有了8种基本的数据类型,还要有它们所对应的8种包装器类呢?通常这也是面试官会问到的问题。话不多说,今天一篇文章解决它!让你的面试畅通无阻~


Java中的8种基本数据类型

boolean,char,int,byte,short,long ,float,double


对应8种包装器类

Boolean,Character,Integer,Byte,Short,Long,Float,Double


为什么存在基本数据类型

  在Java语言中,我们通过new关键字创建的对象,都存储在堆中。但是我们经常要用到的类型,如int,如果还是像对象一样存储在堆中就有点小题大做,因为它们都是一些特别小的变量。因此在java中的原则就是,使用基本数据类型,将int等基本数据类型创建的变量值,直接存储在栈中,更加高效。


有了基本数据类型为何还要有包装器类

  Java语言是一门面向对象编程的语言,但基本数据类型并不具备对象的特质,为了让基本数据类型也具备对象的特性,因此就出现了包装器类型,它相当于将基本数据类型给“包装”起来,使得它们具备对象的性质,并且为其添加了属性和方法,丰富了基本数据类型的操作。


什么情况下使用包装器类呢?

  使用到集合Collection的时候:比如往ArrayList,HashMap中放东西时,像int,double这种基本类型是放不进去的,因为容器都是装object的,这是就需要这些基本类型的包装器类了。


两者的区别

1. 声明方式不同:

基本类型不使用new关键字,而包装器类需要使用new关键字;

2. 存储方式及位置不同:

基本类型是直接将变量值存储在栈中,而包装类型是将对象放在堆中,然后通过引用来使用;

3. 初始值不同:

基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;

4. 使用方式不同:

基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到。


两者互相转换

int 转 Integer

int i = 0;  
Integer x = new Integer(i);

Integer 转 int

Integer m = new Integer(0);  
int n = m.intValue();

“银鞍照白马,飒沓如流星”,如果对你有所帮助,就点个赞吧!我会每天日更,欢迎关注,一起学习成长!

上一篇下一篇

猜你喜欢

热点阅读