小谈面试时面试官为什么问ArrayList,LinkedList与List的不同

当你做为一个技术面试官面试应聘者时,你总是想尝试能全面了解这个面试者的方方面面。技术,背景,性格都是被重点关注的。面试官想在短暂的面试过程中多了解应聘者,那就要有明确的目的性。但是一般面试官不会只是简单问你某某知识点,每个面试题目的背后都有着深意。下面我以list的面试题目来小小剖析一下。

当面试官问你,ArrayList,List和LinkedList的区别的时候,他并不是仅仅想问你他们的用法,而是想透过这道题目,来了解你对日常工作中经常用到的东西有没有稍微深入的了解,深入到什么程度,有没有做到学以致用,把它们和数据结构紧密联系起来。通过这道小小的面试题,可以看出一个人对技术的专研大概程度。

一般,你这样回答,就会得到很好的分数。

    1.List是接口类,ArrayList和LinkedList是List的实现类。

    2.ArrayList是动态数组(顺序表)的数据结构。顺序表的存储地址是连续的,所以在查找比较快,但是在插入和删除时,由于需要把其它的元素顺序向后移动(或向前移动),所以比较熬时。

    3.LinkedList是链表的数据结构。链表的存储地址是不连续的,每个存储地址通过指针指向,在查找时需要进行通过指针遍历元素,所以在查找时比较慢。由于链表插入时不需移动其它元素,所以在插入和删除时比较快。

    仅仅是几句话,就把它们之间的最大不同道出,体现了你对List其实有着更深层的关注,并且知道数据结构层面的特点,面试官会感觉你不是浑浑噩噩在工作的人,平时会比较注意积累和思考。其实还有更深层次含义,就是一旦在工作中遇到问题,他会相信你能凭借这些见微知著的技术掌握很快找到原因并解决问题。


你可能感兴趣的:(java基础)