摘要: 本文是基于jdk8进行分析的 概述 JVM体系结构 类加载机制 运行时数据区 垃圾回收机制 概述 JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java虚拟机 阅读全文
posted @ 2021-06-01 10:38 Yanci丶 阅读(589) 评论(0) 推荐(3) 编辑
摘要: 概述 二叉树是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树。当集合为空时,称该二叉树为空二叉树。在二叉树中,一个元素也称作一个结点 。二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简 阅读全文
posted @ 2021-06-04 18:35 Yanci丶 阅读(566) 评论(0) 推荐(0) 编辑
摘要: 概述: AbstractQueuedSynchronizer,可以称为抽象队列同步器。 AQS有独占模式和共享模式两种: 独占模式: 公平锁: 非公平锁: 共享模式: 数据结构: 基本属性: /** * 同步等待队列的头结点 */ private transient volatile Node he 阅读全文
posted @ 2021-06-02 09:30 Yanci丶 阅读(1070) 评论(0) 推荐(0) 编辑
摘要: 概述 本文是基于jdk8_271版本进行分析的。 Hashtable与HashMap一样,是一个存储key-value的双列集合。底层是基于数组+链表实现的,没有红黑树结构。Hashtable默认初始化容量为11,Hashtable也会动态扩容,与HashMap不同的是,每次扩容的容量是原容量2倍+ 阅读全文
posted @ 2021-05-26 16:00 Yanci丶 阅读(814) 评论(0) 推荐(0) 编辑
摘要: 概述 本文是基于jdk8_271版本进行分析的。 HashMap是Map集合中使用最多的。底层是基于数组+链表实现的,jdk8开始底层是基于数组+链表/红黑树实现的。HashMap也会动态扩容,与ArrayList不同的是,HashMap有一个阈值字段,元素数量达到阈值之后就会进行扩容。HashMa 阅读全文
posted @ 2021-05-25 20:00 Yanci丶 阅读(635) 评论(0) 推荐(1) 编辑
摘要: 概述 本文是基于jdk8_271源码进行分析的。 LinkedList底层是基于链表实现。链表没有长度限制,内存地址不需要固定长度,也不需要是连续的地址来进行存储,只需要通过引用来关联前后元素即可完成整个链表的连续。所以链表的优点就是添加删除元素比较快,只需要移动指针,并且不需要判断扩容。缺点就是因 阅读全文
posted @ 2021-05-25 10:00 Yanci丶 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 概述 本文是基于jdk8_271版本进行分析的。 ArrayList是Java集合中出场率最多的一个类。底层是基于数组实现,根据元素的增加而动态扩容,可以理解为它是加强版的数组。ArrayList允许元素为null。它是线程不安全的。 数据结构 实现继承关系 1 public class Array 阅读全文
posted @ 2021-05-24 20:10 Yanci丶 阅读(603) 评论(0) 推荐(1) 编辑
摘要: 概述 Java所有集合类都在java.util包下,支持并发的集合在java.util.concurrent(juc)包下。 集合与数组区别: 数组大小是固定的,集合大小可以根据使用情况进行动态扩容。 数组可以存放基本数据类型,集合只能存放引用数据类型。 Java中集合分为单列集合(实现Collec 阅读全文
posted @ 2021-05-24 15:00 Yanci丶 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 概述 树是一种重要的非线性数据结构,直观地看,它是数据元素(在树中称为结点)按分支关系组织起来的结构,很象自然界中的树那样。 一棵树(tree)是由n(n>0)个元素组成的有限集合,其中: 每个元素称为结点(node); 有一个特定的结点,称为根结点或根(root); 除根结点外,其余结点被分成m( 阅读全文
posted @ 2021-04-01 10:18 Yanci丶 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 本文是基于Windows环境对Gradle-6.6版本进行的安装配置。 简介 下载 安装 环境变量配置 开发工具配置 1.简介 Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置 阅读全文
posted @ 2021-01-11 12:33 Yanci丶 阅读(320) 评论(0) 推荐(0) 编辑