包装类|泛型

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。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值