复习
- 数学类
a) Math:针对基本类型提供 初等数学运算。本身是一个最终类,构造方法是私有的提供了大量的静态方法,所有Math本身是作为一个完全的工具类来使用、
b) BigDecimal:用于精确运算的类,在运算的时候要求将参数以字符串形式传入。
c) BigInteger:能够存储和计算任意大的证书,同样要求参数以字符串形式传入 - 日期类
a) Date:重点掌握—掌握字符串和日期之间的转换—SimpleDateFormat
b) Calendar:了解 - 异常
a) 是java中一套用于问题的反馈和处理的机制
b) 顶级父类是Throwable
i. 错误Error—出现之后不能处理
ii. 异常Exception—出现之后可以处理:要么抛出,要么补货
- 编译时异常:出现之后必须处理
- 运行时异常:出现之后可以处理也可以不处理—RuntimeException
c) 异常的捕获方式
i. 多个异常的处理方式各不一样,多个catch分别捕获分别处理
ii. 所有异常的处理方法都一样,那么捕获这些异常的统一父类统一处理
iii. 异常之间进行了分组,那么将同一组异常之间用|隔开
d) 注意自定异常
e) 异常不影响方法的重载,但是重写的时候,要求子类抛出的编译时异常不能超出父类对应方法的异常范围-子类不能抛出比父类更多的异常
集合
存储多个元素容器—大小是不固定
顶级接口—Collection
–泛型—在集合中是用于限定元素类型的。由于泛型的限定,集合只能存储引用类型
String[] arr; arr的数据类型是数组,元素类型是String
Collection c; c的数据类型是Collection, 元素类型是String
Collectionc; c<-‘a’,’b’
List—列表(接口)
是一个有序(保证元素的存入顺序)集合。通过下标来操作列表中对应位置上的元素
ArrayList—顺序表(实现类)重点
底层是依靠的数组来存储数据。内存空间是连续的。默认初始容量为10 ,每次扩容默认是在原来的基础上增加一半,基于右移。10—>1522。增删相对复杂但是查询相对简单。是一个线程不安全的列表。
trimeToSize-表示将列表的大小缩到和当前元素合数相同(了解)
Vector—向量(实现类)
最早期的集合
底层是依靠数组来存储数据。默认初始容量是10,如果不指定容量增量,那么每次扩容默认增加一倍,基于三元表达式。是一个线程安全的列表
Stack-栈(实现类)重点
是Vector的子类。一个用于存储数据的容器。
遵循后进先出(LIFO last in first out )/先进后出的原则
栈底元素:最先放入栈中的元素
栈顶元素:最后放入栈中的元素
向栈中存放元素—入栈/压栈
从栈中向外取元素—出栈/弹栈
练习:用数组实现一个栈结构—元素类型是String