- 2025-01-10Java学习记录
面向对象封装对象代表什么,就得封装对应数据,并提供数据对应行为例子1:人画圆对象:圆、人则画圆的方法应该写在圆的类中(画圆会对应到圆的半径等数据)publicclassCircle{doubleradius;publicvoiddraw(){System.out.println("根据半径"+radius+"
- 2025-01-06ArrayList源码解析-JDK18
引言ArrayList在JDK1.7和1.8中的差距并不大,主要差距以下几个方面:JDK1.7在JDK1.7中,使用ArrayListlist=newArrayList()创建List集合时,底层直接创建了长度是10的Object[]数组elementData;在接下来调用add()方法向集合中添加元素时,如果本次的添加导致底层elementData数组
- 2025-01-03Java集合 —— ArrayList详解(源码)
我这里阅读的是JDK17关于ArrayList的源码,不过思路都是一样的简介 ArrayList是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。 ArrayList继承了AbstractList,并实现了List接口。属性设置//序列化Idprivatestatic
- 2024-12-05ArrayList源码解析-JDK18
引言ArrayList在JDK1.7和1.8中的差距并不大,主要差距以下几个方面:JDK1.7在JDK1.7中,使用ArrayListlist=newArrayList()创建List集合时,底层直接创建了长度是10的Object[]数组elementData;在接下来调用add()方法向集合中添加元素时,如果本次的添加导致底层elementData数组容量不
- 2024-12-11【机器学习】基础知识:SSR-残差平方和(Sum of Squared Residuals)
1.概念残差平方和(SSR,SumofSquaredResiduals)是统计学和回归分析中的一个指标,用于评估模型拟合数据的效果。它表示数据点与模型预测值之间的差异(即残差)的平方和,公式为::实际值:模型预测值n:样本数量2.残差平方和的意义衡量拟合质量:SSR越小,说明模型预测值与实际值越接
- 2024-10-17Arraylist集合实现以及代码解读
原理主要把插入后的元素向后移动一位package集合框架.Arraylist;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Objects;importjava.util.Queue;/***如果传入参数执行有参构造方法,进行判断如果intsize等于0那么说明数组为空数组如果大于0那么此
- 2024-09-23JavaSE---Fail-Fast
总结主要用于集合类中,以确保在遍历集合时如果集合本身被修改,则会立即抛出ConcurrentModificationException异常。原理内部计数器:每个集合对象都有一个内部计数器,称为modCount(modificationcount)。每当集合结构被修改(比如添加或删除元素),这个计数器就会增加。迭代器检查:当
- 2024-09-16ArrayList 源码解析
ArrayList是Java集合框架中的一个动态数组实现,提供了可变大小的数组功能。它继承自AbstractList并实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量capac
- 2024-09-16Arraylist源码分析:如何实现一次add操作?
注意:这里是JDK17,和JDK8略微有所不同成员变量 add操作:0.(初始化,常用)在初始化newArrayList的时候,会给elementData赋一个有区别的空列表,以便下面使用。 1.将指定元素添加至队尾,返回一个布尔值 2.add的抽离方法,当size和elementData.length一样大的时候就该需要扩容了,
- 2024-09-06Array List与顺序表
学习目标线性表顺序表与链表的简单了解ArrayList的介绍ArrayList的扩容机制 线性表线性表(linearlist):是由n且具有相同的特性数据元素的有限列表,线性表在实际运用中常见的数据结构,常见的线性表:栈,堆,队列,顺序表,链表…链表:在逻辑上是连续的数据结
- 2024-08-30JAVA集合的扩容机制
ArrayListList<Integer>list =newArrayList<>();不指定初始长度,默认刚开始赋值{}空集合,当add时,初始长度为10。//初始容量privatestaticfinalintDEFAULT_CAPACITY=10;//空数组privatestaticfinalObject[]DEFAULTCAPACITY_EMPTY_ELEMENTDATA={};当超
- 2024-08-28ArrayList与顺序表
1.线性表 线性表(linearlist)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列.. 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是
- 2024-08-23ArrayList动态扩容机制(长度可变原理)
ArrayList底层是数组结构的,数组的默认长度为10。当数组添加满了后,会自动扩容为1.5倍。原理讲解:1.用空参构造函数创建ArrayList集合容器。测试代码:publicclassArrayListDemo{publicstaticvoidmain(String[]args){//创建ArrayList集合容器
- 2024-08-15【ArrayList】JDK1.8源码详细注释 以及如何实现线程安全的链表
ArrayList(JDK8)ArrayList有四个内部类,成员内部类Itr,成员内部类ListItr,静态内部类SubList,ArrayListSpliterator(暂时用不到)Itr是Iterator的实现类,支持正向遍历,ArrayList的iterator方法返回一个Itr对象ListItr是ListIterator的实现类,支持双向遍历,ArrayList的listIterator方法
- 2024-07-21ArrayList【源码解析】
showDiagram 从上图可以看出我们的老朋友ArrayList实现了Cloneable、RandomAccess、Serializable3个接口,并且继承了AbstractList抽象类。1.Cloneable Cloneable接口是Java中的一个标记接口,它没有任何方法定义,只是作为一个标志,表示实现
- 2024-07-21[Java基础]ArrayList
ArrayListArrayList是List接口的实现类,它是支持根据需要而动态增长的数组。java中标准数组是定长的,在数组被创建之后,它们不能被加长或缩短。这就意味着在创建数组时需要知道数组的所需长度,但有时我们需要动态程序中获取数组长度。ArrayList就是为此而生的,但是它不是线程安全的,外
- 2024-07-122-ArrayList底层结构和源码分析
2-ArrayList底层结构和源码分析介绍汇总:ArrayList的注意事项ArrayList的运行重要步骤补充1-ArrayList的注意事项ArrayList允许添加所有的元素,包括null,而且还可以多个null。ArrayList是由数组来实现数据存储的。ArrayList基本等同于Vector,除了ArrayList是线
- 2024-07-05ArrayList底层结构和源码分析
//无参构造器创建ArrayList对象//ArrayListlist=newArrayList();//断点1ArrayListlist=newArrayList(8);//断点2//添加1-10数据for(inti=0;i<=10;i++){list.add(i);}//添
- 2024-07-03Vector底层结构和代码解析
基本介绍定义说明publicclassVector<E>extendsAbstractList<E>implementsList<E>,RandomAccess,Cloneable,java.io.Serializable{Vector底层是一个对象数组,protectedObject[]elementData;Vector是线程同步的(线程安全),Vector类的操作方法带有synchronized
- 2024-06-02集合类源码浅析のArrayList
源码分析路线图:初级部分:ArrayList->LinkedList->Vector->HashMap(红黑树数据结构,如何翻转,变色,手写红黑树)->ConcurrentHashMap中级部分:Spring->SpringMVC->SpringBoot->Mybatis核心类源码高级部分:中间件源码(有生之年系列)第一篇,从最简单的ArrayList入手分析1、成员变量