# 泛型概述
1. 为什么要用泛型:
泛型在定义方面与定义接口,方法,类很相似,区别在于参数.
方法接口类使用形参-->用值
泛型使用类型参数-->类型
### 泛型的优点
1.在编译期间强类型检查,把代码检查提前至编译时:Java编译器将强类型检查用于通用代码,如果代码违反类型安全就会报错
2.消除类型转换
```
//需要类型转换
ArrayList list=new ArrayList();
list.add("add");
String str=(String)list.get(0);
//泛型
ArrayList<String> list=new ArrayList<>();
list.add("add");
String str=list.get(0);
```
3.代码复用,程序员能够实现通用算法;通过泛型可以实现对不用类型的集合进行工作,可以自定义-->类型安全并且易于阅读的算法