java接口与抽象类对比:
接口支持多继承,抽象类单继承;
接口只能定义常量及抽象方法,抽象类可以定义变量,常量,非抽象方法;
异常体系:
Throwable 子类分为 Error 和 Exception , Exception 分为 RuntimeException 和 非RuntimeException;
Error: 严重问题,不需要处理;
Exception: 称为异常类,它表示程序本身可以处理的问题;
1、RuntimeException:在编译期是不检查的,出现问题后,需要我们回来修改代码;
2、非RuntimeException:编译期就必须处理的,否则程序不能通过编译,就更不能正常运行了 ;
集合:
集合分为单列集合和双列结合,单列结合为Collection,双列集合为Map;
单列结合Collection下分为可重复元素的List,和不可重复元素Set;
List和Set都为接口,具体实现类有:List下有ArrayList、linkedList等;
Set实现类有:HashSet、TreeSet等;
双列集合Map实现类有:HashMap等;
Set集合:不包含重复元素的集合,没有带索引的方法,所以不能使用普通for循环遍历,对集合的迭代顺序不作任何保证;
hashCode时根据对象或其他信息计算得出的int型数值,可重写hashCode方法;
------------------------------------------------------------
集合遍历时使用iterator遍历时添加元素会报集合并发修改异常;
使用普通的for循环遍历时添加元素则不会报并发修改异常;
jdk1.5版本之后使用for循环增强语句遍历时添加元素,也会报集合并发修改异常,其底层使用的是iterator迭代器原理;
------------------------------------------------------------
栈:数据是先进后出的结构模型;
队列:数据是先进先出的结构模型;
数组:一列数据中每个元素对应的索引位置,如果查询则效率比较高,若做删除和添加效率比较低,因为每删除或者添加一个元素都要移动其后面的所有元素的位置;
链表:每个存储数据都有一个结点和指向下个地址信息,若要做添加和删除元素时,只需把上一个地址信息指向对应的地址信息就可以,
而查询则每次查询都要从头开始查询,所以链表型数据结构相对于增删 *** 作效率比较高;
数组与链表对比,数组读多写少时效率比链表的有效率,而读少写多时链表比数组的效率高;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)