Java加强day01

一、异常Exception
1.异常分为两类:第一类为运行时异常RuntimeException,第二类为其他异常(统称为编译时异常)。
2.代表意思为:运行时报错,和编译时就报错
3.通过异常定位程序中的bug。还可以作为特殊的返回值。
4.自定义异常:分为自定义编译时异常和自定义运行时异常;分别继承Exception和RuntimeException
5.一般情况下使用自定义运行时异常,不用一层一层往上抛throws
6.方法抛异常时使用throws(只有编译时异常需要抛,运行时异常可以不抛)
7.异常的处理方法:第一种最外层捕获异常,记录信息返回给用户。第二种尝试修复:用死循环加上try-catch块,break处理。

二、泛型
1.在编译阶段约束所能操作的数据类型,用于自检查
2.泛型类:定义类时类名后面加泛型
3.泛型接口:为方便多态,定义泛型接口,(使用泛型接口时,每个数据类型写一个实现类实现接口)
4.泛型方法:使得方法功能更强大,使得类型不需要强转。
5.通配符与上下限:为方便功能方法的通用性,ArrayList集合可能有不同的泛型,此时需要通配符?表示集合的所有泛型。但出现一个问题,与所需泛型无关(不是多态中的父子兄继承关系)的其他泛型可能进来,所有又有了通配符。两种来限制上下界:?extend Car表示只能是Car的子类或自己,?super Car表示只能是Car的父类或自己
6.泛型只能支持对象类型,不能支持基本数据类型。因为泛型最有都要由object处理,object只能接收对象类型。为解决提出包装类
7.包装类:int-Integer char-Character这俩变化,其他(short、byte、long、double、float、boolean)大写首字母即可。包装过后变成对象类型
8.有了包装类,泛型也可以是基本数据类型了。对数据进行操作时会发生,自动装箱和自动拆箱不需要进行处理。
9.包装类有俩API:把数据转化为字符串toString(),把字符串转化为数据ValueOf()。

三、集合
1.集合之间的关系:分为单列集合collection和双列集合Map。单列集合又分为List和Set等子类。
2.collection的遍历方式,(对于并发修改异常问题是否能解决)
1)迭代器遍历:Iterator迭代器。用collection的remove方法不能解决此问题,因为集合或数组本身发生修改导致抛出异常。用迭代器对象的remove方法可以解决
2)for遍历:不能解决并发修改异常
3)lambda的forEach遍历:不能解决并发修改异常
4)并发修改异常问题描述:当遍历集合或者数组时,遍历到某一项做出修改动作,导致后续在修改时发生异常情况
3.List集合是collection集合的子类,继承其功能。特点:有序、有索引(提供了有关索引的方法)、可重复。
1)ArrayList集合,基于数组实现,查询快,增删慢
2)LinkList集合,基于双向链表链表,查询慢,增删相对快。可以用作栈和队列的实现。
4.Set集合也是Collection的子类。特点:无序,不重复,无索引(链表和数组之后数据多时转化为红黑树)。
1)无序,不重复,无索引HashSet:每个对象都有一个哈希值(不同对象哈希值大概率不同),为实现去重操作在类中重写HashCode和equals方法(将不同对象但相同内容的哈希值变为同一个)
2)有序,不重复,无索引LinkedHashSet:底层使用HashSet,使用双链表来表示前后
3)排序,不重复,无索引TreeSet:排序规则需要重写。第一种对象类实现Compare比较接口重写方法。第二种对象自带比较器使用内部类重写方法

posted @ 2025-04-18 17:14  南飞小猪  阅读(2)  评论(0)    收藏  举报