浅谈JDK1.8中ArrayList的动态扩容

本文详细探讨了JDK1.8中ArrayList的动态扩容机制。ArrayList底层为动态Object数组,通过无参构造器创建时,默认不分配容量,而在首次调用add()时初始化为10。扩容时,数组容量会扩大到原来的1.5倍,如果超过最大容量MAX_ARRAY_SIZE,则按需求调整。
摘要由CSDN通过智能技术生成

浅谈JDK1.8中ArrayList的动态扩容


简介

ArrayList的底层,实际就是一个可以动态扩容的Object数组,它继承了AbstractList这个抽象类,实现了List, RandomAccess, Cloneable, java.io.Serializable四个接口。其中,值得一提的是RandomAccess这个接口。RandomAccess是一个标记接口,用于标明实现该接口的List支持快速随机访问,主要目的是使算法能够在随机和顺序访问的list中表现的更加高效(当要实现某些算法时,会判断当前类是否实现了RandomAccess接口)。

RandomAccess
这里写图片描述

构造器


ArrayList()
ArrayList(Collection<? extends E> c)
ArrayList(int initialCapacity)

无参构造器

我们先来看无参构造器的源码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值