美文网首页
面试刷题7:int和Integer有什么区别?

面试刷题7:int和Integer有什么区别?

作者: 李福春carter | 来源:发表于2020-03-25 11:22 被阅读0次
image.png

原始数据类型是java系统的重要组成元素。java号称一切都是对象,原始数据类型除外。

我是李福春,我在准备面试,今天我们来回答一个问题:

int和Integer有什么区别?

int是原始数据类型,并非对象;<br />Integer是int的包装类型,是对象。<br />区别是在自动装箱和自动拆箱上。

下面分开详细来讲。

int

java的8个原始数据类型之一,(bool,char,byte,int ,short,long,dubule,float);<br />单独使用不是线程安全的,在并发场景下应该使用AtomicX系列原子对象替代。

Interger

int对应的包装类,内部使用的原始类型存储数值,提供了一些数学操作和字符串转换的操作。<br />自动装箱利用的它的Integer.valueOf(int) 方法;<br />自动拆箱利用的它的Integer.intValue()方法;<br />
<br />自动装箱和自动拆箱发生在编译期,可以写一段简单的代码,编译之后反编译进行验证。<br />代码如下:<br />

Integer integer = 1;
int unboxing = integer ++;

反编译结果:

1: invokestatic  #2                  // Method
java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
8: invokevirtual #3                  // Method
java/lang/Integer.intValue:()I

其它的原始类型的自动装箱拆箱原理类似。

应该避免创建过多的对象,因为原生类型不是对象,对应场景下存储性能更优。

通过阅读源码:<br />包装类采用了值缓存,Integer缓存了-128-127;<br />内部有bytes,size相关的方法,消除了操作系统位数的差异,在行为上是一致的;

小结

本篇分别介绍了int和integer, 区别主要是自动装箱和自动拆箱。

image.png

原创不易,转载请注明出处。

相关文章

  • 面试刷题7:int和Integer有什么区别?

    原始数据类型是java系统的重要组成元素。java号称一切都是对象,原始数据类型除外。 我是李福春,我在准备面试,...

  • 9.int 和 Integer 有什么区别,Integer的值缓

    问题:int 和 Integer 有什么区别,Integer的值缓存范围? 一、int 和 Integer 的基本...

  • 大话java面试-java基础-1

    1、int 和 Integer 有什么区别,Integer的值缓存范围 int是基本类型,Integer是int的...

  • 包装类2

    int 和 Integer 有什么区别,Integer的值缓存范围 1 int与integer的基本使用对比 (1...

  • Java之Integer和int的区别

    如果在面试的时候面试官问你:Integer和int有什么区别?你肯定会这样回答:int是基本数据类型,Intege...

  • Java核心技术36问系列之7-12(二)

    接上一篇《Java核心技术36问系列之1-6(一)》 7:int和Integer有什么区别,Integer值的缓存...

  • Java基础

    1 int 和 Integer 有什么区别;Integer的值缓存范围ans:int 是基本数据类型,用作变量时直...

  • int 和 Integer 有什么区别

    Integer是int的包装类,int则是java的一种基本数据类型。Java为每个原始类型提供了封装类,为了能够...

  • int和Integer有什么区别

    Java虽然号称是面向对象的语言,但是原始数据类型仍然是重要的组成元素,所以在面试中,经常考察原始数据类型和包装类...

  • int 和 Integer 有什么区别

    int 和 Integer 有什么区别 答: Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。In...

网友评论

      本文标题:面试刷题7:int和Integer有什么区别?

      本文链接:https://www.haomeiwen.com/subject/shstuhtx.html