您的位置 首页 java

Java面试-int与Integer的区别

  • int是基本类型,数值范围介于-2,147,483,648 [-2 31 ]到+2,147,483,647 [2 31 -1]之间,在此区间内的数值计算使用int有很高的性能。 int类型占32位,且是可变的( mutable) ,除非用final修饰,否则可以随时改变它的值。
  • Integer是对象类型,包含int属性。相比int,Integer较为庞大,就好比用一个快递箱把int包装起来。 Integer类型是不可变的(immutable) ,如果想影响一个Integer变量的值,只能新建一个Integer对象,将原来对象丢弃。

二、特性及使用场景

不同的使用场景,选择也不同。

三、相互转换

// to int i from Integer iiint i = ii.intValue();
// to Integer ii from int iInteger ii = new Integer( i );
 

四、基本类型与包装类型区别

从int与Integer的区别,进一步分析基本类型与包装类型区别。

  • 声明方式不同:

基本类型不使用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;

  • 存储方式及位置不同:

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

  • 初始值不同:

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

  • 使用方式不同:

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

五、为什么有了基本类型还要有包装类型

从速度上看,int类型无需任何对象包装,体积小,速度快。如果只有一种类型,它可以做任何事情,只要让编译器自动计算出何时需要包装,何时不需要,这样岂不更方便?

就目前Java现状来看,包装类型为基本类型添加了属性和方法,丰富了基本类型的操作,使其具有了对象的性质。不同的使用场景,需要使用不同的类型。如,Integer可以区分出未赋值和值为0的区别,int则无法表达出未赋值的情况。 要想表达出没有参加考试和考试成绩为0的区别,则只能使用Integer。

参考资料:

int vs Integer

java中有了基本类型为什么还要有包装类型?

文章来源:智云一二三科技

文章标题:Java面试-int与Integer的区别

文章地址:https://www.zhihuclub.com/185276.shtml

关于作者: 智云科技

热门文章

网站地图