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。