学习日历 -2024/9/12
泛型
泛型的好处
- 统一数据类型
- 把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为在编译阶段类型就能确定下来
泛型的细节
- 泛型中不能写基本数据类型
- 指定泛型的具体类型后,传递数据时,可以传入该类类型或者子类类型
- 如果不写泛型,类型默认是Object
泛型类-泛型方法
import java.util.ArrayList;
public class ListUtil<T>{
public static<E> void addAll(ArrayList<E> list,E...e){
for (E e1 : e) {
list.add(e1);
}
}
}
import java.util.ArrayList;
public class ListUtilTest {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
ListUtil.addAll(list,13,45,546,132,4);
System.out.println(list);
}
}
泛型接口的两种使用方式
- 实现类给出具体的类型
- 实现类延续泛型,创建实现类对象再确定类型
public class MyArrayList1 implements List<String>{}
MyArrayList<String> list = new ArrayList<>();
泛型的通配符
泛型不具备继承性,数据具有继承性.
利用泛型方法有一个小弊端,此时它可以接收任意的数据类型
此时就可以使用泛型的通配符
?表示不确定的类型,但是也可以进行类型的限定
? extends E 表示可以传递E或者E所有的子类类型
? super E 表示可以传递E或者E所有的父类类型
import java.util.ArrayList;
public class a04Test2 {
public static void main(String[] args) {
ArrayList<Ye> list1 = new ArrayList<>();
ArrayList<Fu> list2 = new ArrayList<>();
ArrayList<Zi> list3 = new ArrayList<>();
method(list1);
method(list2);
method(list3);
}
public static<E> void method(ArrayList<? extends Ye> list){
}
}
SQL
- DQL -语法
DQL-基本查询
1.查询多个字段
SELECT 字段1,字段2,字段3...from 表名;
SELECT * FROM 表名; //显示所有字段
2.设置别名
SELECT 字段1[AS 别名],字段2[AS 别名2] ... FROM 表名;
3.去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
select id as '编号',name as '姓名' from emp;
as可以省略