包装类介绍
拓展阅读: Java8新特性
1.包装类的作用
Java是一种面向对象的编程语言,却存在几个不具有对象特征的异类;他们不能像对象一样进行属性和方法的调用,也无法进行相互之间的对象化处理。包装类的存在就是为了解决这些问题,让他们能够像对象一样进行交互。
通过包装类可以让基本数据类型获取对象一样的特征,行使对象相关的权益。
2.基本数据类型和包装类的对应
3.包装类常用方法
3.1)Java中所有的包装类都是存放在【java.lang】这个包里面的;
3.2)所有的包装类都是final修饰的,即是不能被继承的,是没有子类的;
3.3)基本数据类型分为三大类:数值型、字符型、布尔型;他们的直接父类不同;
所有的数值型都是继承Number类的;
字符类型和布尔类型的直接父类是Object类;
3.4)Integer类还实现了Comparable接口,关于这个接口后续再深入了解
3.5)Integer的属性和方法
(对于Integer中的方法,可以看下API中的描述,自测一下,简单了解即可)
基本数据类型和包装类之间的转换
1.装箱和拆箱的简单示例程序
装箱和拆箱:基本数据类型和对应包装类之间的转换
装箱和拆箱都有自动和手动两种方式,以下为简单示例:这篇博客主要掌握装箱和拆箱的基本操作即可
2.装箱和拆箱分析
下图提供了一种新的自动装箱的方法:通过valueOf()方法。
相较来看,自动装、拆箱,表面是自动转换的方式(帮助开发者忽略了底层的调用)
……………………………………………………
1.基本数据类型和包装类的区别
这部分主要是加强对包装类的整体感官
1.基本数据类型和字符串之间的相互转换
2.包装类对象的初始值
其包装类的默认初始值为null。
3.包装类对象间的比较
……………………………………………………
……………………………………………………
原因解释:
在执行Integer four = 100;这个自动装箱操作时,背后实际执行的是 Integer four = Integer.valueOf(100);
Java为了提高运行效率,在Integer.valueOf()这个方法执行的过程中,提供了一个类似于常量数组的常量缓存区(或称对象池);
即在实际中:执行Integer three = 100;时,其会在缓存区中查找是否有100这个对象,此时还没有,所以这个时候执行的是:Integer three = new Integer(100);即会隐式的使用new关键字去实例化一个数值为100的对象;
在执行Integer four = 100;时,缓冲区中一查,发现有数值为100的对象,即这个时候拿过来直接用就行了,,,即这个时候four直接指向这个对象;即这个时候three和four指向了同一个对象,二者的值是一样的。
4.附带内容
……………………………………………………
……………………………………………………
这个主要是看下char类型
……………………………………………………、
包装类的常见问题
包装类的常见问题(单纯罗列,仅供浏览)
下图说的会引发空指针异常的情况很重要: