Java面试-int与Integer的区别

一、基本介绍

  • int是基本类型,数值范围介于-2,147,483,648 [-231]到+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的区别,进一步分析基本类型与包装类型区别。

  1. 声明方式不同:

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

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

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

  3.  初始值不同:

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

  4. 使用方式不同:

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

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

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

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

参考资料:

int vs Integer

http://mindprod.com/jgloss/intvsinteger.html

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

https://blog.csdn.net/min996358312/article/details/62894674

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值