前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试被问:ArrayList自动扩容机制的实现原理?怎么答?

面试被问:ArrayList自动扩容机制的实现原理?怎么答?

作者头像
Tom弹架构
发布2023-04-28 11:07:37
1140
发布2023-04-28 11:07:37
举报
文章被收录于专栏:Tom弹架构Tom弹架构Tom弹架构

一位3年工作经验的小伙伴面试时被问到,说请你谈一谈ArrayList自动扩容机制的实现原理。这个问题对于稍微看过一点源码的小伙伴来说,其实非常简单。下面我给大家分享一下我对这个问题的理解。

1 存储容器

ENTER TITLE

ArrayList是一个数组结构的存储容器,默认情况下,数组的长度是10。当然,我们也可以在构建ArrayList对象的时候,直接指定初始长度。那么,随着程序的运行,不断地往ArrayList中添加数据,当添加的数据达到10个的时候,ArrayList就没有足够的容量来存储后面添加的数据。那么,这个时候,ArrayList会触发自动扩容机制。

2 扩容原理

ENTER TITLE

扩容的流程其实也很简单,首先创建一个新的数组,这个数组的长度是原来数组长度的1.5倍。然后,使用Arrays.copyOf()方法把原数组中的数据拷贝到新数组中。扩容完成之后,再把当前要添加的数据加入到新的数组中,从而完成动态扩容的过程。

好了,以上就是我对这个问题的理解。作为一个业务程序员,虽然工作的性质是让大家去写CRUD,不需要过多的去关注技术的底层实现原理。但是,在未来的职业晋升过程中,对技术的理解程度非常重要。

另外,5/6/7月份资料文档已打包,包含如下↓(还在持续更新中!):

①100道最新大厂经典面试题解析资料文档!

②20万+字Java面试题解析和配套答案!

③从应届生到高级开发都使适用的简历模板!

④从入门到精通的架构师学习路线图!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tom弹架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档