1.1.基本数据类型和对应的包装类
1.2.装箱和拆箱,自动装箱和拆箱
2.泛型
2.1引出泛型、泛型的使用
1.1基本数据类型和对应的包装类
包装类:在java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本数据类型,java给每个基本数据类型都对应了包装类。(为了让基本数据类型也能面向对象)
除了int是Integer,char是Character,其他基本数据类型对应的包装类都是首字母大写。
1.2装箱和拆箱
(1)装箱
把基本的数据类型转变为包装类型
会调用Integer的valueOf方法。
(2)自动装箱
(3)拆箱
猜猜这个结果是啥:
答案是 true,false
为什么?
装箱会调用Integer的valueOf方法,查看一下这个方法返回值
low值是-128,high值是127,所以100的时候会返回数组下标对应的值,a、b是相同的;200的时候返回new的对象,地址不同,所以a、b的值也不等。
2.泛型
2.1引出泛型、泛型的使用
如果要你实现一个类,类中包含一个数组成员,使得数组中可以存放任何数据类型,也可以根据成员方法返回数组中某个下标的值。
然后你写了这样的代码:
然后这里报错了,因为向下转型需要强转成这样:
每次都要看看放的是什么类型数据然后强转太麻烦了,而且什么类型的数据都能放太乱了。
所以引入了泛型:
注意:
不能这样写:
因为泛型是在编译时期存在的,当程序运行起来到JVM时就没有泛型的概念了。
那么泛型在编译时期是如何编译的?
擦除机制,擦除成了Object。