学习总结
Math类
方法:
Math.abs(double num) // 获取绝对值
Math.ceil(double num) // 向上取整数 12.1 =13 -12.1=12
Math.floor(double num) // 向下取整 12.1 =12 -12.1= -13
Math.round(double num) // 四舍五入
抽象类(abstract class)和接口(interface)有什么异同
1.抽象类中可以定义构造方法 接口中不能定义构造方法
2.可以有抽象方法和具体方法 接口中方法全部都是抽象方法
3. 抽象类中的成员可以是 private、默认、protected、public ,接口中的成员全都是public的
5.有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法
6.抽象类中可以包含静态方法 接口中不能有静态方法
7.一个类只能继承一个抽象类 一个类可以实现多个接口
多态是指 父类引用指向子类的对象。
集合
公用方法
Add() 向集合中添加元素
Remove() 从集合中删除一个元素
isEmpty() 判断集合是否为空
size() 集合的长度
toArray();把集合转成数组
clear() 清空集合中的元素
List:存储有序,元素允许重复,有索引
ArrayList:
底层是数组实现,增删慢,查找快。
LinkedList:
底层是链表结构查询慢增删快
Vector:
底层是数组实现,增删慢,查找快。
Set: 不允许重复元素,没有索引
HashSet:
底层是哈希表结构,查询快
哈希表
哈希值:是一个十进制的整数,由系统随机给出,在object类中有一个方法获得哈希值
Iterator 迭代器
工作原理: 取出集合中数据之前先判断集合中是否有数据,如果有就取出来,继续判断,一直把集合中数据全部取出。
实现方法
迭代器类型要和集合数据类型一致
Iterator<String> listit = list.iterator();
使用Iterator接口中的hashNext()方法判断集合中是否有元素
While(listit.hashNext()){
使用iterator中的next()方法取出元素
System.out.println(listit.next());
}
增强for(for each)
//便利集合和数组
格式:
For(数据类型 变量名:要遍历的集合){
System.out.println( 变量名称)
}
常用的数据结构:
栈,队列,数组,链表,红黑树
栈:先进后出 《弹夹》
队列:先进先出
链表
查询慢,增删快(链表中的地址不是连续的每次查询都要从头开始)
红黑树:
二叉书节点不能超过两个
查询树:左小右大
异常:
异常类Throwable是所有异常类的父类,它下面有两个子类
Error:无法通过程序处理的错误
Exception:编译期异常
子类:RuntimeException(运行期异常)