《java源码》之List分析

星期天随想

今天打开csdn,看到博客头条推送了一条敖丙的文章,标题很吸引人,叫《大厂都是怎么进行SQL调优的?》。

看了一下,点击量很高,标题很唬人(吊打XX面试官系列,大厂XX系列),内容很时尚(年轻人不讲武德,耗子尾汁),后面还有加关注送资料(里面浓浓的原汁广告味)。

就想,希望自己的博客,都是一字一句自己敲下来的,内容都是自己验证过的,不管质量高低,尽量真实有用。

不改初心,勉力前行

从面试中来

记得好几年前了,当时刚工作没多久,想跳槽去一家公司某卡。

当时面试官那个哥们,具体长相记不清楚了,不过一看应该就技术挺厉害(发量较少,体型有点过劳肥)。

一来问了个java界的"太祖长拳"问题:

ArrayList与LinkedList有什么区别?

说实话,当时应该是刷了什么宝典之类的,回答应付过去了,大致如下

  • 都实现了List接口
  • ArrayList底层是数组,插入删除元素涉及数组元素的移动较慢,但是查找较快;
  • LinkedList底层是双向链表,插入删除元素只改动头尾节较快,但是查找较慢(全链表循环一个个比较元素,跟查找的元素比较是否相等)

到面试中去

其实上面的答案是一般性回答,也没有看过源码,也没考虑线程安全方面(这个以后会单独讲)。

由于最近也在恶补《数据结构与算法》,所以就探究一下ArrayList与LinkedList的源码

类图

ArrayList与LinkedList都实现了List接口,所以看下他们的类图关系

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值