今天是第八天
1.类ExampleA继承Exception,类ExampleB继承ExampleA。
有如下片段。
try {
throw new ExampleB("b")
} catch(ExampleA e){
System.out.println("ExampleA");
} catch(Exception e){
System.out.println("Exception");
}
会输出ExampleA,在能使用父类的地方一定使用父类。
2,List、Set、Map是否继承自Collection接口?
答:List,Set是,Map是键值对映射容器。
3.阐述ArrayList、Vector、LinkedList的存储性能和特性。
ArrayList和Vector都是使用数组的形式存储元素的,数组的元素数大于数据的数量,便于增加元素,可以使用序数索引元素,插入元素需要进行元素移动等内存操作,所以读取较快,增加和操作比较慢。ArrayList的效率vector高,因为vector是线程安全的。LinkedList是双向链表的格式,在内存中将零散的内存单元
通过引用关联起来,内存利用率较高,但是读取元素速度过慢,Vector是过时的容器,不建议使用。
4.Collection和Collections的区别?
答:Collection是一个接口,它是set和list的父接口,而collections是一个工具类,提供了系列静态的方法来辅助容器操作,如搜索,排序,使线程安全等。
5.List、Map、Set三个接口存取元素时,各有什么特点?
答:List以特定的索引来存取元素,可以有重复的元素,但是Set则不能有重复的元素。Map保存键值对的映射,映射的关系可以是一对一也可以是多对一。Set和Map有基于哈希存储和排序树的两种实现,基于哈希存储的实现理论上读取和存储元素的时间复杂度为O(1),基于排序树的实现理论上在增加和删除元素上让元素或元素的key形成排序树从而达到去重和排序的效果。