Java核心-07int和Integer有什么区别?

一.基本使用对比

int Integer 基本数据类型 包装类 速度快 速度慢 栈中 堆中 初始值 = 0 初始值 = null

二.深入对比

1.new Integer生成的是两个对象,内存地址不同.

2.包装类Integer和基本数据类型int比较时,java会自动包装为int

3.非new生成的integer变量指向的是静态常量池中的cache数组中存储的指向Integer对象;

而new integer生成的变量指向堆中,两者在内存中的对象引用地址不同。

4.Integer的值会进行缓存[-128到127]之外的数,被装箱后的Integer对象并不会被重用,即相当于每次装箱时都新建一个Integer对象。

三.自动装箱和自动拆箱

1.自动装箱:将基本类型数据重新转化为对象 Integer num = 9;

2.自动拆箱:将对象重新转化为基本类型 int num1 = num。

经验分享 程序员 微信小程序 职场和发展