泛型和包装类

泛型和包装类

一 泛型

1.泛型:只存在于编译时期

意义:
(1)可以自动进行类型的检查
(2) 自动进行类型的转换

泛型的擦除机制:编译的时候会进行类型擦除,会把泛型擦除为Object

简单类型不能做泛型类型的参数

2.泛型的使用

泛型可以一次有多个类型变量,用逗号分隔
使用例子:

class Student{
    
    
    private String name;
    private String banji;
    private double score;
    public Student(String name,String banji,double score){
    
    
        this.name = name;
        this.banji = banji;
        this.score = score;
    }

    @Override
    public String toString() {
    
    
        return "Student{" +
                "name='" + name + '\'' +
                ", banji='" + banji + '\'' +
                ", score=" + score +
                '}';
    }
}
public class Test {
    
    

    public static void main(String[] args) {
    
    
        List<Student> list= new ArrayList<>();
         list.add(new Student("张三","1",80.0));
        list.add(new Student("李四","1",90.0));
        for (int i = 0;i < list.size();i++) {
    
    
            System.out.println(list.get(i));
        }
    }
}

3.泛型总结

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

二 包装类

1.基本数据类型及其包装类型

在这里插入图片描述

2.装箱/装包(boxing)

(1)显示装箱

int i = 10;
Integer ii = Integer.valueOf(i);
Integer ij = new Integer(i);

(2)自动装箱

int i = 10;
Integer ii = i; 
Integer ij = (Integer)i; 

3.拆箱(autounboxing)

(1)显示拆箱

int j = ii.intValue();

(2)自动拆箱

int j = ii; // 自动拆箱
int k = (int)ii;

猜你喜欢

转载自blog.csdn.net/qq_45915957/article/details/112974585