Java的泛型和包装类

泛型

泛型的分类

1.泛型类.
基本语法:class 类名{ }
// 尖括号 <> 是泛型的标志
// E 是类型变量(Type Variable),变量名一般要大写
// E 在定义时是形参,代表的意思是该类最终传入的类型,但现在还不知道
2. 泛型方法

泛型类的使用

在这里插入图片描述
在这里插入图片描述

1. 泛型是为了解决某些容器、算法等代码的通用性而引入,并且能在编译期间做类型检查。
2. 泛型类型不能new一个泛型类型的对象,需要new对象时可以new一个Object对象并强转为T类型。
3. 泛型利用的是 Object 是所有类的祖先类,并且父类的引用可以指向子类对象的特定而工作。
4. 泛型是一种编译期间的机制,即 MyArrayList<Person> 和 MyArrayList<Book> 在运行期间是一个类型。
5. 泛型是 java 中的一种合法语法,标志就是尖括号 <>。
6. 简单类型不能作为泛型的参数,例:<int>错,包装类<Integer>对。   

泛型的意义

1.自动进行类型的检查(不是进行了类型的替换,只是拿所给类型进行检查);
2.自动进行类型的强制类型转换。

包装类

包装类的引入

Object 引用可以指向任意类型的对象,但有例外出现了,8 种基本数据类型不是对象,那岂不是刚才的泛型机制要失效了?
实际上也确实如此,为了解决这个问题,java 引入了一类特殊的类,即这 8 种基本数据类型的包装类,在使用过程中,会将类似 int 这样的值包装到一个对象中去。

基本数据类型和包装类的对应关系

在这里插入图片描述

包装类的使用

装箱(装包)(boxing):将简单类型变为对应的包装类
拆箱(拆包) (unboxing):将包装类变为对应的简单类型
在这里插入图片描述
自动装箱(autoboxing): 调用静态方法Integer.valueOf ( );
自动拆箱(autounboxing):调用实例方法Integer.intValue( );
在这里插入图片描述

发布了27 篇原创文章 · 获赞 4 · 访问量 1043

猜你喜欢

转载自blog.csdn.net/Lb_CsdnJava/article/details/103440712