JAVA面试题第八天

    xiaoxiao2023-11-14  132

    今天是第八天 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形成排序树从而达到去重和排序的效果。

    最新回复(0)