Java最难的语法<泛型>

简介: Java最难的语法<泛型>

时间过得很快,我们马上就进入了,Java最难语法的学习,加油吧!

1.包装类

想要学好泛型就要了解包装类。

在Java中,由于基本类型不是继承自Object,为了在泛型代码中可以支持基本类型,Java给每个基本类型都对应了一个包装类。

除了 Integer 和 Character, 其余基本类型的包装类都是首字母大写。

1.2 装箱和拆箱

public static void main(String[] args) {
         int a = 10;
         Integer aa = a; //装箱
         Integer b = 20;
         int bb = b;     //拆箱  
     }

这是一种自动 装箱/拆箱 。

装包:把一个基本类型转变为包装类型。

拆包:把一个包装类型转变为基本类型。

也有手动 装箱/拆箱。

int a = 10;
Integer aa = Integer.valueOf(a); //装箱
Integer b = new Integer(20);
int bb = b.intValue();     //拆箱

两者基本一样,在底层都是调用的同一个方法。

2.泛型

2.1什么是泛型

泛型是在JDK1.5引入的新的语法,通俗讲,泛型:就是适用于许多类型。从代码上讲,就是对类型实现了参数化。

2.2语法

class 泛型类名称<类型形参列表> {

     // 这里可以使用类型参数

}

代码示例

class MyArray<T> {
    public T[]array = (T[]) new Object[10];
    public void setval(int pos,T val){
        array[pos] = val;
    }
    public T getval(int pos){
        return array[pos];
    }
}
public class Main {
    public static void main(String[] args) {
         MyArray<String> myArray = new MyArray<String>();
         myArray.setval(1,"hello");
         myArray.setval(2,"bit");
         String str = myArray.getval(1);
         System.out.println(str);
         MyArray<Integer> myArray1 = new MyArray<>();
         myArray1.setval(0,1);
         int val = myArray1.getval(0);
        System.out.println(val);
    }
}

泛型的意义

  • 1.在编译的时候检查数据类型是否正确
  • 2.在编译的时候帮助进行类型转换

2.3泛型类的使用

泛型类<类型实参> 变量名; // 定义一个泛型类引用

new 泛型类<类型实参>(构造方法实参); // 实例化一个泛型类对象

示例

MyArray<Integer> list = new MyArray<Integer>();

注意:泛型只能接受类,所有的基本数据类型必须使用包装类!

 

目录
相关文章
|
6天前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
11 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
8天前
|
存储 前端开发 JavaScript
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
【8月更文挑战第8天】10min快速入门java的基础语法
21 2
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
|
11天前
|
存储 算法 Java
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
31 2
14 Java集合(集合框架+泛型+ArrayList类+LinkedList类+Vector类+HashSet类等)
|
12天前
|
安全 Java 编译器
Java 基础语法-面试题(53道)(基础概念+基础语法+流程控制)
Java 基础语法-面试题(53道)(基础概念+基础语法+流程控制)
37 18
|
12天前
|
Java
Java 基础语法-面试题(54-63道)(数组+类+包)
Java 基础语法-面试题(54-63道)(数组+类+包)
30 16
|
12天前
|
存储 Java 编译器
Java 基础语法-方法
Java 基础语法-方法
28 12
|
8天前
|
Java API
Java语法Java语法
【8月更文挑战第12天】Java语法
21 3
|
11天前
|
Java 关系型数据库 程序员
11 Java接口(语法、规范、微观&宏观接口)
11 Java接口(语法、规范、微观&宏观接口)
32 6
|
12天前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(下)
02 Java基础语法(变量+数据类型+运算符)
16 5
|
12天前
|
存储 Java
02 Java基础语法(变量+数据类型+运算符)(上)
02 Java基础语法(变量+数据类型+运算符)
30 4