本文根据黑马程序员视频编写,为本人学习笔记,转载注明出处
黑马程序员视频地址https://www.bilibili.com/video/BV15b4y117RJ?

1 arraylist扩容机制

arrylist 是顺序线性表。而linkedlist则是链式线性表(每一个节点占两个内存,内存更大 因此我们在实际使用时一般是用arraylist。
jdk8版本之后:
通过无参构造

new arraylist();

这样构造出来的是占用内存大小是0

扩容规则

初始为0加入元素则变成10,之后变为1.5倍进行扩容。
小数向下取整
1.5的底层用的是 右移一位的思想(相当于除于2)再加上原来的数。
addAll方法扩容则是选择一步到位。

2 failfast&failsafe(迭代器运行机制

这两者是针对多线程情况下的迭代器运行机制
下图是他们的性质

1.arraylist是failfast,不允许他人修改


可以看到报了一个并发修改异常

2.copyonwriteArraylist则是failsafe允许修改

failsafe仍旧会使用原来的线性表

3 两者比较

见下图

从局部性原理来理解arraylist的优势

【Java基础】ArraylistLinkedList机制,failfastfailsafe相关推荐

  1. [Java基础] 反射机制汇总

    引言 初学Java反射机制的时候,只是感觉很神奇,但是不知道学了该怎么用,所以过了一段时间就忘得差不多了:最近接触到了框架,在学习中遇到了反射,深深体会到了反射机制的神奇,回来复习了一下反射机制,写一 ...

  2. Java基础——类加载机制及原理

    一.什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结 ...

  3. Java基础-反射机制

    目录 1.反射机制概述 2.获取class的三种方式 2.1.Class.forName()方式 2.2.obj.getClass()方式 2.3..class方式 3.通过反射实例化对象 4.通过读 ...

  4. Java基础-锁机制

    Java中的锁机制 Lock不是Java语言内置的, synchronized是Java语言中的关键字, Lock是一个接口,通过这个接口可以实现同步访问. Lock允许更灵活的结构, 并可以支持多个 ...

  5. Java基础——类加载机制

    什么叫类加载 JVM把 .class 字节码文件加载到内存,并进行相关的校验.解析.初始化,最终转换为虚拟机可用的JAVA类型的过程,称为JVM类加载机制. (当然,JVM并不关心class文件的来源 ...

  6. Java基础-注解机制详解

    文章目录 1. 注解基础 1.1 Java内置注解 1.1.1 内置注解 - @Override 1.1.2 内置注解 - @Deprecated 1.1.3 内置注解 - @SuppressWarn ...

  7. Java基础-异常处理机制

    //什么是异常? 程序运行的过程中发生的各种错误 //为什么学习异常? 1.让程序逻辑思维更健康 2.有能力解决异常 //A异常的分类 //1 未检查异常:编译时不报错,运行时可能出错.[实质上是一些 ...

  8. Java基础-异常机制

    异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序 所需文件找不到 网络连接不通或中断 算术运算错 (被零除-) 数组下标越界 装载一个不存在的 ...

  9. java的多线程机制_Java多线程开发(一)| 基本的线程机制

    0. 前言 Java 为了实现跨平台,在语言层面上实现了多线程.我们只需要熟悉 Java 这一套多线程机制就行了,比 C/C++ 要容易多了. 1. 定义任务 我们编写程序,最终是为了完成特定的任务. ...

  10. java基础-java反射机制

    2019独角兽企业重金招聘Python工程师标准>>> 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩" ...

最新文章

  1. SpringBoot最最最常用的注解梳理
  2. 网络安全系列之五十 对Web主目录进行备份
  3. 一文搞懂重复测量资料分析
  4. 认识和入门 WebRTC
  5. BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
  6. 设计模式系列-组合模式
  7. C语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数
  8. 统一管理MOSS2010用户头像
  9. c# asp.net mvc 开发的正方教务助手(二)
  10. 【数字逻辑设计】毛刺
  11. 从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用
  12. BST:Transformer在推荐领域的应用
  13. PostgreSQL extra_float_digits——控制浮点数精度
  14. 微波雷达人体感应技术,智能镜子感应雷达模块应用,让生活更有趣
  15. Oracle 实体用户授权及同步同义词
  16. excel 的lookup和sumifs函数使用
  17. python入门论坛_PythonTab:Python中文开发者社区门户
  18. 大白菜装机教程win10_win10安装教程
  19. Android 动态界面开发框架 Tangram 使用完整教程
  20. “我祝你不幸并痛苦”——约翰·罗伯茨毕业致辞

热门文章

  1. 【前端面经】面试:最快最全面的渗透应聘者真实水平
  2. PS(Photoshop)常用快捷键使用大全
  3. 如何把pdf文件变小一点?
  4. 【用户画像】从0到1掌握用户画像知识体系
  5. 如何通过给MM修电脑培养感情
  6. 树莓派Python实现相机控制,定时与画面变化捕捉拍照
  7. [转]PCI与PCIe
  8. java List转 Stingt和 Sting转List 方法
  9. 国外计算机论文翻译,计算机论文外文翻译
  10. 这款微信插件太好用了