首页 > 编程语言 >06ArrayList源码分析

06ArrayList源码分析

时间:2023-10-30 13:25:36浏览次数:42  
标签:分析 创建 ArrayList 06ArrayList 源码 数组 长度 添加

ArrayList

一、ArrayList集合的底层原理--扩容机制

  • 利用空参创建的集合,在底层创建一个默认长度为零的一个数组。

  • 添加第一个元素时,底层会创建一个新的长度为10的数组。

    1

  • 存满时候,会扩容1.5倍。

    2

  • 如果一次添加多个元素,1.5倍放不下,则创建数组的长度以实际为准。

    • 如:添加100个数据,新数组长度110。

二、查看源码

  • Ctrl+N 输入ArrayList 在右上角选择 All Place,表示在所有的情况下都去搜索ArrayList。

    3

  • Alt+7 查看大纲。 Ctrl+F12 查看大纲。

三、ArrayList源码分析

  • 添加第一个元素的分析

4

  • 添加第11个及以上元素的分析

5

标签:分析,创建,ArrayList,06ArrayList,源码,数组,长度,添加
From: https://www.cnblogs.com/ahbzbn/p/17797569.html

相关文章

  • 08迭代器源码分析
    Iterator一、源码分析size:集合的长度。cursor:光标,表示迭代器的指针,默认指向0索引位置二、modCount作用modCount++;是集合变化的次数(删除或者添加)。expectedModCount创建的迭代器的时候会把集合变化的次数传递给这个变量。(相当于迭代器对次数自己做了一次记录)c......
  • zookeeper源码(03)启动流程
    本文将从启动类开始详细分析zookeeper的启动流程:加载配置的过程集群启动过程单机版启动过程启动类org.apache.zookeeper.server.quorum.QuorumPeerMain类。用于启动zookeeper服务,第一个参数用来指定配置文件,配置文件properties格式,例如以下配置参数:dataDir-数据存储目......
  • class底层原理分析
    表面上是:class+类名 会把类构造出来实际上是:元类实例化产生类 这个对象#类实例化产生对象,一定是: 类名()#Person类是有type实例化产生,传一堆参数#type()调用类的__init__方法#type()#如果想要控制类的产生过程,就要用type(object_or_name,......
  • PMP的SWOT分析法
      什么是SWOT分析法?SWOT又称态势分析法或优劣势分析法,其中S(strengths)是优势、W(weaknesses)是劣势,O(opportunities)是机会、T(threats)是威胁。所谓SWOT分析,即基于内外部竞争环境和竞争条件下的态势分析,就是将与研究对象密切相关的各种主要内部优势、劣势和外部的机......
  • 嵌入式linux总线设备驱动模型分析
    嵌入式linux系统按照,分层,抽象的思想,按照这样的思想来设计我们的程序可以更容易写出耦合性低、独立性强、可重用性强的代码。Linux内核中更是存在着更多的分离、分层思想的代码,platform平台设备驱动就是用了这样的思想。本篇笔记我们一起来学习一下platform驱动框架。Linux引入platf......
  • 嵌入式linux系统设备树实例分析
    前言我们可以从LED程序中榨取很多知识:基本的驱动框架、驱动的简单分层、驱动的分层+分离思想、总线设备驱动模型、设备树等。这大多都是结合韦老师的教程学的。这篇笔记结合第6个demo(基于设备树)来学习、分析:框图下面是LED程序的几个层次结构图:注意:层与层之间的箭头指向是相对的,从哪......
  • 嵌入式硬件库的基本操作方式与分析
    本次要介绍的开源软件是c-periphery:https://github.com/vsergeev/c-periphery一个用C语言编写的硬件外设访问库。我们可以用它来读写Serial、SPI、I2C等,非常适合在嵌入式产品上使用。我们可以基于它优秀的代码框架,不断地扩展出更多的功能模块,最终形成自己产品适用的Linux硬......
  • java中native源码查找方法
    以Object的hashCode()方法为例:1.下载openjdk源码或从github中查找,这里以github中查找为例;2.GitHub中查找https://github.com/bpupadhyaya/openjdk-8/tree/master/hotspot源码;3.搜索到Object.c源码文件,并查找hashCode字眼,如下所示: 4.由上可知,hashCode方法实际是调用的jvm.c......
  • 顺序队列结构分析
    队列介绍队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。队列的特点是先进先出(FIFO),下面是队列......
  • 《有效需求分析》阅读笔记
    《有效需求分析》是一本关于如何进行有效需求分析的书籍,作者通过实际案例和理论知识的结合,详细介绍了需求分析的重要性、方法和技巧。在阅读这本书的过程中,我深刻地认识到了需求分析在软件开发过程中的关键作用,以及如何运用一些实用的方法来提高需求分析的质量。以下是我在阅读过......