![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
J-Power
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集机制与内存分配策略总结(上)
参考: https://www.jianshu.com/p/8f5fa8288d9b          java深入理解虚拟机 &am原创 2019-03-17 15:31:02 · 245 阅读 · 0 评论 -
java对象创建过程
对象的创建过程 java程序在运行的过程中无时无刻都有对象被创建出来 那对象的创建过程是怎样的呢? 当java虚拟机遇到一条new指令时,首先会去检查这个指令的参数能否再常量池中定位到这个类的符号引用。如果这个符合引用没有被加载 那么jvm会执行相应的类加载过程(加载,验证 准备 解析 初始化) 在类加载完成之后 jvm就会为这个对象在堆上分配内存,(内存的大小在类加载完之后就可确定) 内存分配的...原创 2019-03-24 20:03:06 · 171 阅读 · 0 评论 -
HotSpot 卡表技术
来源:极客时间 | 深入拆解 Java 虚拟机 卡表 为了解决在Minor GC中为了找出Minor GC中 所有的GC Roots 因为老年代中可能存在对新生代的引用,导致我们需要扫描整个老年代吗? HotSpot 给出的解决方案是一项叫做卡表(Card Table)的技术。 该技术将整个堆划分为一个个大 小为 512 字节的卡,并且维护一个卡表,用来存储每张卡的一个标识位。这个标识位代表对应的...转载 2019-03-19 08:49:43 · 431 阅读 · 0 评论 -
JVM:TLAB技术
来源:极客时间 | 深入拆解 Java 虚拟机 通常来说,当我们调用 new 指令时,它会在 Eden 区中划出一块作为存储对象的内存。由于堆空间 是线程共享的,因此直接在这里边划空间是需要进行同步的。 否则,将有可能出现两个对象共用一段内存的事故。如果你还记得前两篇我用“停车位”打的比方的 话,这里就相当于两个司机(线程)同时将车停入同一个停车位,因而发生剐蹭事故。 Java 虚拟机的解决方法是...转载 2019-03-19 09:01:20 · 393 阅读 · 0 评论 -
JVM垃圾收集机制与内存分配策略总结(下)
本文我们主要讨论内存分配和主要的垃圾回收器和垃圾回收算法 我觉得知道对象是怎么在堆上分配的更有利于理解垃圾回收器所以先来介绍内存分配策略 1.对象内存分配 预备知识:Minor GC和Full GC 新生代GC(Minor GC):指发生新生代的的垃圾收集动作,Minor GC非常频繁,回收速度一般也比较快。 老年代GC(Major GC/Full GC):指发生在老年代的GC,出现了Ma...原创 2019-03-19 09:23:57 · 148 阅读 · 0 评论