Littlehui's Notes

古代有一位将军喝酒成瘾,将军啊将军,他越喝越有型。


  • 首页

  • 关于

  • 标签

  • 分类

  • 搜索

【Mysql深入理解系列1】数据结构

发表于 2021-05-11 | 分类于 mysql
数据结构基础https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 数据结构 二叉树:可能产生单边链,对查询效率就很低。 红黑树:二插平衡树。 树的高度会很高。 B树: 非叶子节点也有存data。一个元素占用1K。一个N ...
阅读全文 »

【JVM深入理解系列6】OOM调优

发表于 2021-05-11 | 分类于 java , jvm
JVM OOM 堆区Heap 方法区Per 栈区StackOverFlow 元空间调优参数 12-XX:MetaspaceSize=10m-XX:MaxMetaspaceSize=10m 1、最大、最小设置成一样大。2、程序运行起来后,通过visualVM、arthas查看占用了多少内存,向上调 ...
阅读全文 »

【JVM深入理解系列5】精通垃圾回收

发表于 2021-05-11 | 分类于 java , jvm
分代复制算法指针移动原理数据发生了移动,为什么依然能够访问到。 JVM四大层面 java语法java字节码openjdk原理 openJdk源码 强软弱虚引用前提:未发生GC 所有的对象都是白色。发生GC时新建的对象都是hi黑色。 标记阶段做的事情 初始化标记只标记 GC Roots直接关联的 ...
阅读全文 »

【JVM深入理解系列4】精通String

发表于 2021-05-11 | 分类于 java , jvm
遗留问题String s2 = “dd” + new String(“test”);四个 string3个char 数组UseCompressedoops压缩的是对象指针的长度 UseCompressedClassPointers压缩的是klass对象指针的长度 如果不压缩,则在array ...
阅读全文 »

【JVM深入理解系列3】底层优化

发表于 2021-05-10 | 分类于 java , jvm
对象布局 对象头 Mark Word 32bit 4B 64bit 8B 类型指针 Klass pointer 对象所属类的元信息的实例指针 instanceKlass ...
阅读全文 »

【JVM深入理解系列2】执行引擎

发表于 2021-05-10 | 分类于 java , jvm
执行引擎JVM运行Java程序的一套子系统 解释器模板解释器和字节码解释器都是JVM执行引擎中的一种实现方式,用于解释执行Java字节码指令。 字节码解释器Java字节码-> C++代码->硬件编码 字节码解释器是JVM默认的执行引擎,其将Java字节码指令解释为对应的本地机器指令,然后 ...
阅读全文 »

【JVM深入理解系列1】JVM底层加载

发表于 2021-05-10 | 分类于 java , jvm
类的加载过程加载加载是指查找并加载类的字节码文件,并将其转换为 JVM 内部的数据结构,即 Class 对象。Java 中的类加载器负责查找类文件,一般有三种类加载器:引导类加载器、扩展类加载器和应用程序类加载器。 在HotSpot中具体是三个步骤: 通过类的全限定名获取存储该类的class文件。 ...
阅读全文 »

【深入理解并发编程系列5】抽象队列同步器AQS Lock详解

发表于 2021-04-01 | 分类于 java , 并发
背景为了提升锁性能引入了 锁粗化技术。 锁粗化:多个同步都加统一个对象。反复不停进出一个对象。JVM会对这样的代码进行逃逸分析。对整个代码块进行扫描。如果符合这种特征代码的话,会将多个同步块合并成一个大的同步快,变粗了。 锁消除:如果对象不可能被多个对象访问到。通过逃逸分析,会对锁进行消除。比如只加 ...
阅读全文 »

【深入理解并发编程系列4】JVM内置锁 synchronized关键字详解

发表于 2021-03-29 | 分类于 java , 并发
ReentrantLock历史:李二狗看到Synchronized效率太低,自己实现了一套基于AQS的锁。支持可重入,公平,非公平等特性。 Synchronized历史:1.6之前效率低下,重量锁。1.6之后进行了升级,追加了锁的升级过程。 偏向锁->轻量级锁->重量级锁。 效率和Ree ...
阅读全文 »

【深入理解并发编程系列3】JMM-CPU缓存一致性协议MESI

发表于 2021-03-26 | 分类于 java , 并发
volatile可见性实现的原理编译后的汇编会增加一个lock前缀 CPU指令 lock前缀是总线锁 CPU访问内存必须通过总线桥访问。lock前缀加了总线锁,其他CPU就无法通过总线桥获取内存数据。 这个是古老的CPU用的。这种方式会降低多核性能。 MESI M:modifyE:独占S:shar ...
阅读全文 »
<i class="fa fa-angle-left"></i>1…789…17<i class="fa fa-angle-right"></i>

163 日志
50 分类
127 标签
RSS
© 2026 Littlehui
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.2