代码编织梦想

使用传统方法的问题分析

1.不能对加入到集合 ArrayList中的数据进行约束,不安全

2.遍历的时候,需要进行类型转换如果集合中数据量较大,对效率有影响

泛型的好处

1.编译时,检查添加元素的类型,提高了安全性

2.减少了类型转换的次数,提高效率

3.不在编译警告

泛型介绍

int a = 10;

泛(广泛)型(类型) => Integer, String, Dog

1.泛型又称参数化类型,时Jdk5.0出现的新特性,解决数据类型的安全性问题

2.在类声明或实例化时,只要指定好需要的具体的类型即可

3.Java泛型可以保证如果程序员在编译时没发出警告,运行时就不会抛出ClassCastException异常。同时,代码更加简洁,健壮

4.泛型的作用是:可以在类声明时通过一个标识表示类中某个属性类型,或是某个方法返回值的类型,或者是参数的类型

泛型的声明

interface 接口<T> {} 和 class 类 <K,V>{} //比如List, ArrayList

说明:

1.其中,T,K,V不代表值,而是表示类型

2.任意字母都可以。常用T表示,时Type缩写

泛型的实例化

要在类名后面指定类型参数的值(类型)。如:

1.List<String> strList = new ArrayList<String>();

2.Iterator<Customer> iterator = customers.iterator;

泛型语法和使用

泛型使用的注意事项和使用细节

1.interface List<T>{}, public class HashSet<E>{}..等等

说明:T,E只能是引用类型

2.在给泛型指定了具体类型后,可以传入该类型

3.泛型使用形式

List<Integer> list1 = new ArrayList<Integer>();

实际开发中简写为:

List<Integer> list2 = new ArrayList<>();

4.如果我们这样写 List list3 = new ArrayList();默认给他的泛型是 [<E> E就是Object]

自定义泛型(*)

基本语法

class 类名 <T, R, ...>{

成员

}

注意细节

1.普通成员可以使用泛型(属性, 方法)

2.使用泛型的数组,不能初始化(因为无法确定类型,无法在内存中开辟空间)

3.静态方法中不能使用类的泛型(在加载类的时候就要确定类型,但是类型没有确定下来,所以无法使用)

4.泛型类的类型,是在创建对象时确定的(因为创建对象时,需要指定确定类型)

5.如果在创建对象时,没有指定类型,默认为Object

自定义泛型接口

基本语法

interface 接口名<T, R, ...>{

}

注意细节

1.接口中,静态成员也不能使用泛型(public static final)

2.泛型接口的类型,在继承接口或者实现接口时确定的

3.没有指定的类型,默认为Object

自定义泛型方法

基本语法

修饰符 <T, R, ...> 返回类型 方法名(参数列表) {

}

注意细节

1.泛型方法,可以定义在普通类中,也可以定义在泛型类中

2.当泛型方法被调用时,类型会确定

3.public void eat(E e){} , 修饰符后没有<T, R...> eat,方法不是泛型方法而是使用了泛型

注释:使用泛型是使用了类声明的泛型,泛型方法是指即可以使用类声明的泛型,也可以使用自己声明的泛型

61a770de36fbe8b9d1c37a4291c3216d.png

泛型的继承和通配符说明

1.泛型不具备继承性

List<Object> list = new ArrayList<String>()是不允许的

2.<?>:支持任意泛型类型

3.<? extends A>:支持A类以及A类的子类,规定了泛型的上限

4.<? super A>:支持A-5555限于直接父类,规定了泛型的下限

JUnit

为什么需要JUnit

1.一个类有很多功能代码需要测试,为了测试,就需要写入main方法中

2.如果有多个功能代码测试,就需要来回注销,切换很麻烦

3.如果可以直接运行一个方法,就方便很多,并且可以给出相关信息

基本介绍

1.JUnit是一个Java语言的单元测试框架

2.多数Java的开发环境都已经集成了JUnit作为单元测试的工具

步骤:

1.在方法上方打出 @Test

2.alt + enter

3.选择 JUnit 5.8.1

//封面来自蕊希电台

//学习资料来自韩顺平30天学Java

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_74783792/article/details/128754955

【javase学习笔记之泛型】_viewda的博客-爱代码爱编程_java 泛型函数查找view

泛型在集合中使用 泛型在集合中的使用 * 创建集合同时指定集合存储的数据类型 * 指定数据类型时,要么指定左边,要么两边都执行相同的数据类型 * 在JDK1.7之前,必须两边都要指定并且要相同的数据类型 * 在JDK1.7之后,指定左边即可 * 在泛型中没有多态的概念 泛型在集合中使用的好处 * 将运行时错误转换为编

javase学习笔记(2.java中的数组)_qq418674358的博客-爱代码爱编程

数组类型: 1.定义及初始化: 数组可以只定义数组引用、定义空间在栈区的数组、定义空间在堆区的数组、通过反射使用Array类定义数组。例子如下: class Test{ public static void main(String[] args) { /*栈区分配空间*/ int[] a = {1,2,3,4}; /*堆区分配空间

javase学习笔记(4.java中的包装类)_qq418674358的博客-爱代码爱编程

1.包装类: Java语法,为8类基础数据类型分别提供了对应的引用数据类型,即包装类!JDK1.5以后的版本,还提供了自动拆箱和自动装箱的功能! 对应关系如下: Ps: 包装类为引用类型,性能一定没有基础类型的性能好,而且还有装包拆包的动作,在可以选择使用基础类型的时候,建议优先使用基础类型!包装类主要是将基础类型和引用类型中间建立一种联系,在

javase学习笔记(10.java泛型)_qq418674358的博客-爱代码爱编程

1. 泛型类的使用: public class GenericTypeTest { public static void main(String args[]) { /*1.泛型类实例化,t1实例和t2实例分别制定泛型类型为String和Integer*/ /*2.泛型目的就是,通过编译检查,保证t1实例的所有的泛型操作都满足T为Str

javase学习笔记(14.java之反射机制)_qq418674358的博客-爱代码爱编程

1. 类加载过程 Java是一门编译加解析的语言,编译器先将代码编译成字节码文件(class文件),Jvm加载class文件进行解析运行! 类加载通常分三个步骤:class文件的加载、类的链接、类的初始化! 1.1 class文件的加载: 将编译后的class文件,加载到内存中,解析字节码,并生成一个Class对象! 1.1.1 类加载器介绍:

javase深度学习笔记 - - 泛型使用详解_jerryxzr的博客-爱代码爱编程

泛型 所谓泛型就是变量类型的参数化,简单来理解就是(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,

JavaSE学习笔记——泛型、枚举类、注解-爱代码爱编程

Day11 泛型什么是泛型?泛型类泛型接口泛型方法通配符 ?有限制的通配符枚举类手动实现使用enum关键字实现枚举类的属性实现接口的枚举类枚举类的方法Annotation注解基本的Annotation自定义Annotation 泛型 什么是泛型? 泛型,解决数据类型的安全性问题,其主要原理是在类声明时通过一个标识表示类中某个属性的类型或

JavaSE学习笔记 Java泛型学习-爱代码爱编程

Java泛型学习 1.泛型的概述与基本使用1.1 ArrayList存储字符串并遍历泛型版1.2 ArrayList存储自定义对象并遍历泛型版2.泛型的由来3.泛型类的概述与使用4.泛型方法的定义与使用5.泛型接口的定义与使用5.1 具体类实现泛型接口,不明确泛型接口中类型参数变量5.2 具体实现类实现泛型接口,明确泛型接口中的参数变量5.3 子类

学习笔记-JavaSE之泛型-爱代码爱编程

泛型的设计背景 泛型的概念 为什么要有泛型? 在集合中使用泛型的情况: 泛型的使用 1.jdk 5.e新增的特性 2.在集合中使用泛型: 总结: 集合接口或集合类在jdk5.e时都修改为带泛型的结构。在实例化集合类时,可以指明具体的泛型类型指明完以后,在集合类或接口中凡是定义类或接口时,内部结构(比如:方法、构造器

javaSE基础学习笔记 day18 泛型 通配符 File类-爱代码爱编程

javaSE基础学习笔记 day18 泛型 (JDK 5.0新特性)泛型类 接口泛型方法泛型在继承方面的体现通配符的使用:?File 类及其使用。 泛型 (JDK 5.0新特性) 在集合中使用泛型: 集合接口或集合类在 JDK 5.0 时都修改为带泛型的结构。在实例化集合时,可指明具体的的泛型类型。指明类型后,在集合接口或集合类中凡是定义的

JavaSE总结笔记 - Generic泛型机制-爱代码爱编程

零基础学Java,肝了bilibili的6百多集JavaSE教程传送门的学习笔记!!! Generic泛型 一、引言 JDK5.0之后推出的新特性:泛型 泛型这种语法机制,只在程序编译阶段起作用,只是给编译器参考的。(运行阶段泛型没用) 使用泛型的好处: 1、集合中存储的元素类型统一了。 2、从集合中取出的元素类型是泛型

JavaSE学习笔记(六):泛型-爱代码爱编程

目录 一、泛型的概念 二、泛型的设计背景 三、泛型的使用 注意点 泛型在继承上的体现 通配符的基本使用 最后 一、泛型的概念 所谓泛型,就是允许在定义类、接口时通过一个标识表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时(例如,继承或实现这个接口,用这个类型声明变量、创建对象时)确定(即传入实际的类型参数

javase学习笔记_aryu_u的博客-爱代码爱编程

文章目录 前言一、static、继承、权限修饰符1.静态(static)1.1.静态成员变量1.1.1.应用场景1.1.2.定义格式1.1.3.使用格式 1.2.静态方法1.2.1.概念1.2.2.使用场景1

transformers学习笔记5-爱代码爱编程

hugface hub上不仅有预训练模型还有数据集 下载数据集 from datasets import load_dataset raw_datasets = load_dataset("glue", "mrpc") raw_datasets DatasetDict({ train: Dataset({ features: