面经详情

Golang面试很好,共1轮面试
  1. 介绍下ArrayListArrayList是一种数组队列,其底层是基于数组的,但是是一种动态数组。ArrayList中有两个重要对象,一个是 elementdate ,保存了添加到ArrayList里的元素。
  2. 当使用ArrayList里的带参数的构造方法时,可以对其进行初始长度设置,如果直接使用不带参数的构造方法,则默认初始长度为10;另一个是size,即实际长度。
  3. 其继承了AbstractList,实现了List,能对其中的元素进行增删查改等操作。在这里经常与LinkedList作比较。
  4. LinkedList是基于循环双向链表的。该链表是由多项的表项连接而成,一个表项包括前驱表、元素内容和后驱表。在一个LinkList里会有一个header,其前驱表项是链表的最后一个元素,后驱表项是第一个元素。
  5. A基于数组,数组的长度是固定的,故进行插入或者是删除一个元素时是比较麻烦的,因为其在插入或者删除某一位时,该位及以后都需要进行移位替换。
  6. L基于链表,其对插入和删除某一元素就相对来说很简单,但是其对于查找操作则很麻烦,需要进行链表的遍历,性能不好。
  7. ArrayList与Vector很相似,但是ArrayList不是线程安全的,因此,ArrayList较适合用于单线程模式,而多线程情况下可用vector。
  8. 其次,还可以看下ArrayList的遍历,我有试了一下分别是用 
  • 1、随机访问,通过索引值去遍历 
  • 2 、使用迭代器遍历 
  • 3、for循环 。最终分别用时3ms,8ms,5ms. 故用索引效率最高,迭代器则较差。

相关推荐

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网字节跳动字节跳动面试经验字节跳动面试经验:Golang面试很好,共1轮面试
正在招聘C/C++研发工程师(高性能计算方向)200 个岗位