
笔记
文章平均质量分 73
一个小刚_
这个作者很懒,什么都没留下…
展开
-
HashMap集合
1.HashMap集合简介JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突**(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)**而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(或者红黑树的边界值,默认为 8)并且当前数组的长度大于64时,此时此索引位置上的所有数据改为使用红黑树存储。补充:将链表转换成红黑树前会判断,即使阈值大于8,但是数组长度原创 2021-04-09 15:17:30 · 215 阅读 · 0 评论 -
JVM-虚拟机对象
1.对象是如何创建的在语言层面上,new一个对象;1.1 类加载在虚拟机中,先检查new这条指令的类是否被加载过,如果没有,就进行类加载1.2 分配内存1.2.1 分配内存的两种方式java堆规整,指针碰撞不规整,空闲列表java堆是否规整与采用的垃圾收集器是否有压缩整理功能有关。1.2.2 线程安全处理方案并发情况下线程并不安全对分配内存空间的动作进行同步处理——实际上虚拟机采用CAS(比较再交换指令)配上失败重试的方式保证更新操作的原子性把内存分配的动作按照线程划分在不同的原创 2021-03-07 16:35:38 · 150 阅读 · 0 评论 -
JVM内存结构
1.内存结构所有线程共享的数据区:堆、方法区线程私有的数据区:程序计数器、虚拟机栈、本地方法栈2.运行时数据区域2.1 程序计数器记录程序的执行位置线程执行java方法,程序计数器记录正在执行的虚拟机字节码指令的地址;执行本地方法,程序计数器为空没有规定内存溢出(OutofMemoryError)情况的区域2.2 虚拟机栈描述java方法执行的内存模型每个方法执行的同时都会创建一个栈帧栈帧中存储局部变量表、操作数栈、动态链接、方法出口;局部变量表中存放基本数据类型、对象应用、re原创 2021-03-07 15:23:21 · 101 阅读 · 0 评论 -
千万级数据表如何用索引快速查找?
千万级数据表如何用索引快速查找?1.索引的本质解析索引: 帮助 MySQL 高效获取数据的排好序的数据结构索引数据结构: 二叉树、红黑树、Hash表、B-Tree注: 查找一次经过一次I/O二叉树:右边的子节点>父节点,左边的子节点<父节点红黑树:二叉平衡树,会自旋,二叉树当索引结构并不合适,I/O次数太多B-Tree:当我们想减少I/O次数,那就得减少树的高度,但是数据量恒定的情况下,高度减少意味着宽度得增加,从而引入B树的概念。B+Tree:(MySql数据库索引使用的原创 2021-02-03 16:11:01 · 1408 阅读 · 0 评论