七叶笔记 » java编程 » 多年开发经验总结的Java面试题——(四)

多年开发经验总结的Java面试题——(四)

1、Java数组和链表的两种结构的操作效率

数组效率高,数组底层是一个连续的内存空间,根据基地址和偏移量计算地址的;

链表的数据是通过地址指向下一个数据地址找到的;

(更多面试题推荐:java常见面试题)

2、Java的引用类型有哪几种?

强引用、弱引用、软引用、虚引用

3、ArrayList、Vector、LinkedList的存储性能和特性

ArrayList是以数组形式存储对象,因为它是存放在连续位置上,插入和删除麻烦,但查询效率高,连续的数组有序的可以根据索引查找;

(相关教程推荐:java入门教程)

LinkedList将对象存储在独立的空间,每个空间保留了下一个链接的索引,查询效率低,但修改、删除效率高

Vector使用了Synchronized方法(线程安全的),性能低于ArrayList

4、List、Set、Map是否继承自Collection接口?

List,Set是,Map不是

5、List、Map、Set三个接口存取元素时,各有什么特点?

(视频教程推荐:java课程)

List允许数据重复,有序的,调用get(index i)来明确说明取第几个。

Set不允许重复数据,内部有排序,只能以Iterator接口取得所有的元素,再逐一遍历各个元素。

Map是通过键值对存储数据,键唯一的,相同数据会覆盖,用get(Object key)方法根据key获得相应的value。

相关文章