java常见面试考点
往期文章推荐:
java常见面试考点(一):自增变量
java常见面试考点(二):单例模式
java常见面试考点(三):类初始化与实例初始化
java常见面试考点(四):方法的参数传递机制
java常见面试考点(六):深入理解String类型
【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权);
本博客的内容来自于:java常见面试考点(五):基本类型和包装类型的区别;
学习、合作与交流联系q384660495;
本博客的内容仅供学习与参考,并非营利;
文章目录
一、基本数据类型与包装类型
基本类型 | 二进制位数 | 包装器类 |
---|---|---|
boolean | 1 | Boolean |
byte | 8 | Byte |
char | 16 | Character |
short | 16 | Short |
int | 32 | Integer |
long | 64 | Long |
float | 32 | Float |
double | 64 | Double |
1.基本数据类型出现的原因? 在Java编程思想的第一章就讲到:万物皆对象,new一个对象存储在堆中,我们通过堆栈的引用来使用这些对象,但是对于经常用到的一系列类型如int,如果我们用new将其存储在堆里就不是很有效——特别是简单的小的变量。所以就出现了基本类型,同C++一样,Java采用了相似的做法,对于这些类型不是用new关键字来创建,而是直接将变量的值存储在堆栈中,因此更加高效。
2,包装数据类型出现的原因?
Java是一个面向对象的语言,基本类型并不具有对象的性质,为了与其他对象“接轨”就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。同时也方便了向其他数据类型转换。
关于基本类型和包装类型的总结
- 基本类型的优势:数据存储相对简单,运算效率比较高。包装类的优势:和其他对象“接轨”,比如集合的元素必须是对象类型,满足了java一切皆是对象的思想,方便与其他数据类型转换;
- 声明方式不同,基本类型不适用new关键字,而包装类型需要使用new关键字来在堆中分配存储空间;
- 存储方式及位置不同,基本类型是直接将变量值存储在堆栈中,而包装类型是将对象放在堆中,然后通过引用来使用;
- 初始值不同,基本类型的初始值如int为0,boolean为false,而包装类型的初始值为null;
- 使用方式不同,基本类型直接赋值直接使用就好,而包装类型在集合如Collection、Map时会使用到;
二、自动拆箱与装箱
1.拆箱与装箱
装箱:
将基本数据类型封装为包装类对象,利用每一个包装类提供的构造方法实现装箱操作。
// 自动装箱
Integer integer1 = 1;
// 手动装箱
Integer integer1 = new Integer(1);
Integer integer1 = Integer.valueOf(1);
拆箱:
将包装类中包装的基本数据类型数据取出。
// 自动拆箱
int integer2 = integer1;
// 手动拆箱
int integer2 = integer1.intValue();
2.包装类的缓存问题
1. 实验一:基本数据类型的==比较会是怎么样?
int i1 = 127;
int i2 = 127;
System.out.println(" int和int进行==比较: "