本文引用自霍格沃兹测试开发学社录播课
Java经典面试题-自动拆装箱
霍格沃兹测试开发
http://ceshiren.com
面试相关问题
- Java常用数据类型有哪些?
- int和Integer有什么区别?
- 为什么要有包装类?
- 什么是自动拆装箱?
面试考察点分析
- 基本数据类型是否了解
- 包装类类型是否了解
- 什么是自动拆、装箱
- 基本数据类型和包装类比较
数据类型
- 整数
- 一般声明为
int
类型 - 如果值很大,则声明为
long
类型
- 一般声明为
- 小数
- 常声明为
double
类型 - 如果声明为float 要在后面加f F
- 常声明为
装箱和拆箱
- 装箱
- 将基本数据类型转换成包装类
- 拆箱
- 将包装类转换成基本数据类型
int 和 Integer 的区别
- ==基本数据类型和包装类的区别==
- 数据类型不同
- 默认值不同
- 内存中存储的方式不同
- 实例化方式不同
- 变量的比较方式不同
自动拆装箱
Integer num1= new Integer(127);
Integer num2= new Integer(127);
System.out.println(num1==num2);//输出 false
Integer num3=127;
Integer num4=127;
System.out.println(num3==num4);//输出 true
Integer num5=128;
Integer num6=128;
System.out.println(num5==num6);//输出 false
int num7=66;
Integer num8=new Integer(66);
System.out.println(num7==num8);//输出 true
总结
面试官可能会问:int 和 Integer 有什么区别?
- int 是基础数据类型,而 Integer 是包装数据类型;
- int 的默认值是 0 ,而 Integer 的默认值是 null;
- int 在内存中直接存数据值, Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向声明的对象;
- Integer 必须实例化 new 才可以使用,而 int 不需要;
- int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量值是否相等,否则只是比较对象的地址: