JVM
蛋焊工
搬砖小学生
展开
-
JVM的3个设置滚动记录GC日志的参数
JVM的3个设置滚动记录GC日志的参数原创 2023-01-12 20:41:27 · 235 阅读 · 0 评论 -
JVM的3个设置滚动记录GC日志的参数
JVM的3个设置滚动记录GC日志的参数原创 2022-12-28 21:54:43 · 491 阅读 · 0 评论 -
java.lang.OutOfMemoryError : unable to create new native Thread.
java.lang.OutOfMemoryError : unable to create new native Thread.(-Xss调整Stack Space的大小)Java程序中,每个线程都有自己的Stack Space。这个Stack Space不是来自Heap的分配。所以Stack Space的大小不会受到-Xmx和-Xms的影响,这2个JVM参数仅仅是影响Heap的大小。Stack Space用来做方法的递归调用时压入Stack Frame。所以当递归调用太深的时候,就有可能耗尽St原创 2021-12-02 15:18:05 · 187 阅读 · 0 评论 -
JVM之三色标记法(5)
三色标记法根据可达性分析,从GC Roots开始进行遍历访问,按“是否访问过”这个条件标记成以下三种颜色:黑色:本对象已访问过,而且本对象 引用到 的其他对象 也全部访问过了。 (自己标记完了,自己的孩子(包括多个孩子)也标记完了,都不是垃圾)灰色:本对象已访问过,但是本对象 引用到 的其他对象 尚未全部访问完。全部访问后,会转换为黑色。(自己标记完了,自己的孩子(包括多个孩子)没有标记)白色:尚未访问过,对象即为GC Roots 不可达,可以进行回收。1、CMS和G1都存在并发标...原创 2020-09-13 23:49:15 · 243 阅读 · 0 评论 -
JVM之运行时数据区(1)
JVM运行时数据区分为:堆(heap)、栈(vm stack)、本地方法栈(native method stack)、程序计数器(program counter register)、方法区(method area)五大部分。1.程序计数器 程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机...原创 2018-11-29 18:54:11 · 152 阅读 · 0 评论 -
JVM之垃圾回收算法(2)
1、JVM垃圾回收算法标记-清除算法:标记清除分为两个过程,即标记阶段和清除阶段。首先从根Root出发可以达到的对象进行标记,遍历堆进行未标记删除。缺点:①标记清除效率不高,需要遍历整个堆空间,②会产生碎片化空间,清除后产生不连续的地址空间,当程序在以后的运行过程中需要分配较大对象时无法找到足够的连续内存而不得不提前触发另一次垃圾收集动作。清除时会暂停程序的进行,等待标记清除结束后才会恢复应用...原创 2018-11-28 19:01:57 · 303 阅读 · 0 评论 -
JVM之垃圾收集器(3)
JDK1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)JDK1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代)JDK1.9 默认垃圾收集器G1垃圾搜集器:串行搜集器(serial collector):Serial、Serial Old并行搜集器(parallel co...原创 2019-02-15 18:16:06 · 234 阅读 · 1 评论 -
JVM之类加载器机制(4)
类加载:是指把类的.class二进制文件加载到JVM中,创建一个java.lang.Class对象。类的生命周期:加载、连接、初始化、使用和卸载,其中前三部是类的加载的过程。类加载器有三种默认使用的类加载器:Bootstrap类加载器、Extension类加载器和Application类加载器。1) Bootstrap类加载器 – JRE/lib/rt.jar它是所有...原创 2019-02-18 17:41:38 · 244 阅读 · 0 评论