目录
初识集合框架
什么是集合框架
包装器
1. 基本数据类型和对应的包装器
2. 装箱和拆箱
3. 自动装箱和拆箱
4. Integer 存储机制
5. 包装器的作用
泛型
1. 什么是泛型
2. 引出泛型
2.1 泛型语法
3. 泛型类的使用
4. Java泛型实现的机制 -- 擦除机制
5. 泛型的上界
5.1 语法
6. 泛型方法
初识集合框架
什么是集合框架
Java
集合框架
Java Collection Framework
,又被称为容器
container
,是定义在
java.util
包下的一组接口 interfaces 和其实现类
classes
。
包装器
1. 基本数据类型和对应的包装器
除了
Integer
和
Character
, 其余基本类型的包装类都是首字母大写。
2. 装箱和拆箱
-
装箱操作,新建一个 Integer 类型对象,将 i 的值放入对象的某个属性中
-
拆箱操作,将 Integer 对象中的值取出,放到一个基本数据类型中
3. 自动装箱和拆箱
自动装箱和拆箱的底层就是编译器帮我们自动处理了
4. Integer 存储机制
库描述
面试题
结果: true false
理由:Integer 的创建机制是,当数据的大小范围是-128~127时,会直接指向cache中保存数组对应值的下标,而不会直接创建新的对象,则此时引用下存储的地址就是相同的,所以第一个就是true;其它范围的值就会创建新的对象,对象不同,引用存储的地址就是不同的,所以第二个就是false。
5. 包装器的作用
在Java中,除了八个基本类型,其它的都是引用类型,都是继承了Object类,也就是都是类和对象,所以为了让八个基本类型也是一个类和对象,Java就为了这八个基本数据类型提供了包装器的类。这样,就可以认为,Java中一切皆类和对象。
泛型
1. 什么是泛型
通俗讲,泛型:
就是适用于许多许多类型
。从代码上讲,就是对
类型实现了参数化
。
2. 引出泛型
所以,泛型的主要目的:就是指定当前的容器,要持有什么类型的对象。让编译
器去做检查。
2.1 泛型语法
class 泛型类名称 < 类型形参列表 > {// 这里可以使用类型参数}class ClassName < T1 , T2 , ..., Tn > {}class 泛型类名称 < 类型形参列表 > extends 继承类 /* 这里可以使用类型参数 */ {// 这里可以使用类型参数}class ClassName < T1 , T2 , ..., Tn > extends ParentClass < T1 > {// 可以只使用部分类型参数}
注意:不能 new 泛型数组
3. 泛型类的使用
语法:
泛型类 < 类型实参 > 变量名 ; // 定义一个泛型类引用new 泛型类 < 类型实参 > ( 构造方法实参 ); // 实例化一个泛型类对象
4. Java泛型实现的机制 -- 擦除机制
在编译的过程当中,将所有的
T
替换为
Object
这种机制,我们称为:
擦除机制
。
Java
的泛型机制是在编译级别实现的。编译器生成的字节码在运行期间并不包含泛型的类型信息。
5. 泛型的上界
5.1 语法
class 泛型类名称 < 类型形参 extends 类型边界 > {...}
6. 泛型方法
语法:
方法限定符 < 类型形参列表 > 返回值类型 方法名称 ( 形参列表 ) { ... }