jvm
文章平均质量分 92
甜美河边的钓鱼人
田美村左岸的钓鱼人
展开
-
cms垃圾回收器
cms垃圾回收器,用于回收老年代内存空间,官方号称零停顿(其实也会停顿,不过垃圾回收中,比较 耗时的部分采用了和服务线程一起工作的方式来减少停顿),该垃圾回收器默认会搭配ParNew(用于 收集年轻代的内存空间)垃圾回收器使用。年轻代使用复制算法,同时是并发的方式;老年代采用标记 清除的方式,也是并发的方式,会利用服务器多核心的优势。该垃圾回收器主要是为了避免老年代垃圾回收的长停顿而设计的。主要通过两种方式:1、老年代不进 行空间的整理,而是采用空闲列表的方式来管理空用的内存。2、标记和清除部分原创 2021-03-21 16:41:08 · 775 阅读 · 1 评论 -
G1垃圾回收器
4、G1垃圾回收器G1设计的目标是让stop the world的时间是可预测和可配置的。C1垃圾回收器是软实时,低延迟的垃圾回收器,你可以设置你需要的性能目标。它解决了CMS中空间碎片的问题,同时因为G1在低延迟,高吞吐量方面都比较好,所以在JDK9取代了默认的Parallel GC 关注吞吐量的组合成为默认的垃圾回收器,而CMS在Jdk9被移除了。G1不要求将年轻代和老年代用连续的空间来实现,堆会被划分成一系列的小resion,通常默认是2048块,任何一个region可能是eden区,surviv原创 2020-12-20 23:22:15 · 215 阅读 · 0 评论 -
6、强引用,软引用,弱引用和虚引用
上一篇:GC Roots的介绍https://blog.csdn.net/chenjianhuideyueding/article/details/110788112java中的引用可以分成四类,分别为:强引用,软引用,弱引用和虚引用。6.1、强引用对于强引用,是我们最常见,比如直接创建一个对象:Obeject obj = new Object();那么obj就是一个强引用。在当前栈帧有效的作用域内,是永远不会被回收的。6.2、软引用软引用是指被SoftRe...原创 2020-12-06 23:19:14 · 125 阅读 · 0 评论 -
5、GC Roots的介绍
上一篇:Java虚拟机栈https://mp.csdn.net/editor/html/110788112java程序在运行的时候,无时无刻都在创建对象,当一些对象已经超过相应的作用域的时候,同时在年轻代的空间不够的时候,就需要进行垃圾回收,对无用的对象进行回收,释放对应的内存。上述的运行时数据区的介绍中,堆和方法区是需要进行垃圾回收的。java虚拟机栈不用回收,pc也不用(这个没介绍),本地方法栈(跟java虚拟机栈是一样的,所以也没有介绍)也不用进行垃圾回收。哪些对象是存活的?既然要...原创 2020-12-06 23:00:39 · 153 阅读 · 0 评论 -
4、Java虚拟机栈
上一篇:堆里对象头的介绍https://blog.csdn.net/chenjianhuideyueding/article/details/110359196参考资料: https://www.artima.com/insidejvm/ed2/jvm8.html这块内存区域是线程私有的区域,存储当前线程运行Java方法所需的所有的数据,指令,返回地址等。它的生命周期和线程是相同的。虚拟机栈中包含栈帧。栈帧是方法运行需要用到的数据结构,用于存储数据和临时结果。栈帧里包含:局...原创 2020-11-30 00:51:09 · 119 阅读 · 0 评论 -
3、堆里对象头的介绍
堆,用于存放对象,就像上述的jconsole界面中,可以分为老年代和新生代,新生代又可以分为:伊甸园区和两个survivor区。3.1、对象的探索堆中的对象创建:需要划分内存区域。有两种方式:一种:指针碰撞另外一种: 空闲列表具体采用哪种方式,跟内存是否是规整有关。内存是否规整,跟垃圾回收的策略有关。如果采用的是复制算法,那么内存规整,采用指针碰撞的方式如果是标记清除的方法,那么内存就不规整,采用空闲列表的方式为了防止并发出现问题,一般会使用相关的同步策略。.原创 2020-11-30 00:34:02 · 218 阅读 · 0 评论 -
2、java 字节码文件解析(java class file bytecode learaning )
class文件格式解析classFile的文件结构:ClassFile { u4 magic; u2 minor_version; u2 major_version; u2 constant_pool_count; cp_info constant_pool[constant_pool_count-1]; u2 ...原创 2020-11-21 17:20:24 · 233 阅读 · 0 评论 -
1、java内存管理-方法区(元空间的简介)
java内存管理我这里使用的版本为:java version "1.8.0_31",64位的机器首先,这里会先用一个工具查看内存的信息:jconsole相关的介绍:https://docs.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html装了jdk,并且配置了环境变量,可以直接在控制台中输入jconsole,就会弹出对应的界面。这里我首先写一段代码,仅仅是sleep一段时间,这里就可以使用jco..原创 2020-11-16 01:05:19 · 297 阅读 · 0 评论