【Java基础】ArraylistLinkedList机制,failfastfailsafe
本文根据黑马程序员视频编写,为本人学习笔记,转载注明出处
黑马程序员视频地址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相关推荐
- [Java基础] 反射机制汇总
引言 初学Java反射机制的时候,只是感觉很神奇,但是不知道学了该怎么用,所以过了一段时间就忘得差不多了:最近接触到了框架,在学习中遇到了反射,深深体会到了反射机制的神奇,回来复习了一下反射机制,写一 ...
- Java基础——类加载机制及原理
一.什么是类的加载? 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结 ...
- Java基础-反射机制
目录 1.反射机制概述 2.获取class的三种方式 2.1.Class.forName()方式 2.2.obj.getClass()方式 2.3..class方式 3.通过反射实例化对象 4.通过读 ...
- Java基础-锁机制
Java中的锁机制 Lock不是Java语言内置的, synchronized是Java语言中的关键字, Lock是一个接口,通过这个接口可以实现同步访问. Lock允许更灵活的结构, 并可以支持多个 ...
- Java基础——类加载机制
什么叫类加载 JVM把 .class 字节码文件加载到内存,并进行相关的校验.解析.初始化,最终转换为虚拟机可用的JAVA类型的过程,称为JVM类加载机制. (当然,JVM并不关心class文件的来源 ...
- Java基础-注解机制详解
文章目录 1. 注解基础 1.1 Java内置注解 1.1.1 内置注解 - @Override 1.1.2 内置注解 - @Deprecated 1.1.3 内置注解 - @SuppressWarn ...
- Java基础-异常处理机制
//什么是异常? 程序运行的过程中发生的各种错误 //为什么学习异常? 1.让程序逻辑思维更健康 2.有能力解决异常 //A异常的分类 //1 未检查异常:编译时不报错,运行时可能出错.[实质上是一些 ...
- Java基础-异常机制
异常( Exception 也称例外)就是在程序的运行过程中所发生的不正常的事件,它会中 断正在运行的程序 所需文件找不到 网络连接不通或中断 算术运算错 (被零除-) 数组下标越界 装载一个不存在的 ...
- java的多线程机制_Java多线程开发(一)| 基本的线程机制
0. 前言 Java 为了实现跨平台,在语言层面上实现了多线程.我们只需要熟悉 Java 这一套多线程机制就行了,比 C/C++ 要容易多了. 1. 定义任务 我们编写程序,最终是为了完成特定的任务. ...
- java基础-java反射机制
2019独角兽企业重金招聘Python工程师标准>>> 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩" ...
最新文章
- SpringBoot最最最常用的注解梳理
- 网络安全系列之五十 对Web主目录进行备份
- 一文搞懂重复测量资料分析
- 认识和入门 WebRTC
- BERT可以上几年级了?Seq2Seq“硬刚”小学数学应用题
- 设计模式系列-组合模式
- C语言:如何定义一个和库函数名一样的函数,并在函数中调用该库函数
- 统一管理MOSS2010用户头像
- c# asp.net mvc 开发的正方教务助手(二)
- 【数字逻辑设计】毛刺
- 从崩溃的选课系统,论为什么更安全的 HTTPS 协议没有被全面采用
- BST:Transformer在推荐领域的应用
- PostgreSQL extra_float_digits——控制浮点数精度
- 微波雷达人体感应技术,智能镜子感应雷达模块应用,让生活更有趣
- Oracle 实体用户授权及同步同义词
- excel 的lookup和sumifs函数使用
- python入门论坛_PythonTab:Python中文开发者社区门户
- 大白菜装机教程win10_win10安装教程
- Android 动态界面开发框架 Tangram 使用完整教程
- “我祝你不幸并痛苦”——约翰·罗伯茨毕业致辞