java中泛型和包装类的简单介绍

本文介绍了Java中的泛型,展示了如何使用泛型类`MyArrayList`实现数据类型的自动检测和转换。泛型在编译时期通过擦除机制转换为Object类型,提高了代码的通用性和安全性。此外,还讲解了包装类的概念,它是将基本数据类型转换为对象的过程,包括装箱和拆箱操作。包装类使得基本类型能在对象世界中无缝操作。
摘要由CSDN通过智能技术生成

java中List接口以及泛型和包装类的简单介绍

一、泛型的简单介绍
在这里插入图片描述
在这里插入图片描述
class MyArrayList 代表当前这个类是一个泛型类,此时的这个T就是一个占位符而已

class MyArrayList <T>{
    public T[] elem;
    public int uesdSize;
    public void add(T val) {
        this.elem[uesdSize] = val;
        uesdSize++;
    }
    public T get(int pos){
        return this.elem[pos];
    }
}
public static void main(String[] args) {
        MyArrayList<String> myArrayList1 = new MyArrayList<>();//这里可以传String类型的数据
        MyArrayList<Integer> myArrayList2 = new MyArrayList<>();//这里可以传Integer类型的数据
        MyArrayList<Boolean> myArrayList3 = new MyArrayList<>();//这里可以传Boolean类型的数据
    }

在这里插入图片描述
泛型的意义:
1、自动进行数据类型检测
2、自动进行强制类型转换
在这里插入图片描述
在这里插入图片描述
面试问题:
1、泛型是怎么编译的?
泛型是编译时期的一种机制,擦除机制,擦成Object类型

我们在底层看一下:
在这里插入图片描述
在这里插入图片描述
泛型总结:

  1. 泛型是为了解决某些容器、算法等代码的通用性而引入,并且能在编译期间做类型检查。
  2. 泛型利用的是 Object 是所有类的祖先类,并且父类的引用可以指向子类对象的特定而工作。
  3. 泛型是一种编译期间的机制,即 MyArrayList 和 MyArrayList 在运行期间是一个类型。
  4. 泛型是 java 中的一种合法语法,标志就是尖括号 <>

二、包装类
关于Object[ ]强制类型转换;
https://www.jianshu.com/p/9783e29d7c20

2.1、包装类
java 引入了一类特殊的类,即这 8 种基本数据类型的包装类,在使用过程中,会将类似 int 这样的值包装到一个对象中去,java中所有数据都是对象,当一个基本数据类型也可是是对象,这也是包装类的作用。
特别注意char 和 int
在这里插入图片描述
2.2、装箱和拆箱
装箱(装包):就是把简单类型的数据 转换成 包装类类型数据的过程

拆箱(拆包):就是把包装类类型数据 转换成 简单类型的数据的过程

public static void main(String[] args) {
     Integer a = 123;//装箱,这里就是将简单的123转换成Integer(包装类)
     int b = a;
}

我们看一下底层是怎样做的:
在这里插入图片描述
重点:阿里面试题
在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Später321

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值