随笔分类 -  JVM

摘要:JVM中的堆一般分为三大部分:新生代、老年代、永久代,其大致的占比如下: 一、新生代 新生代主要用来存放新生的对象。一般占据堆空间的1/3。在新生代中,保存着大量的刚刚创建的对象,但是大部分的对象都是朝生夕死,所以在新生代中会频繁的进行MinorGC,进行垃圾回收。新生代又细分为三个区:Eden区、 阅读全文
posted @ 2020-10-11 16:50 抽象Java 阅读(723) 评论(0) 推荐(0)
摘要:https://www.cnblogs.com/andy-zhou/p/5327288.html https://www.cnblogs.com/Darrenblog/p/10712125.html 阅读全文
posted @ 2020-09-15 15:07 抽象Java 阅读(142) 评论(0) 推荐(0)
摘要:JVM OOM 线上环境处理 定位 没有日志可以定位 接受所有系统, jvm启动参数 转为一个文件,JVM 内存快照 1 -XX:+HeapDumpOnOutOfMemoryError -xx:HeapDumpPath = /temp/202009.hpro GcRoot是垃圾回收器算法中判断一个对 阅读全文
posted @ 2020-09-15 14:23 抽象Java 阅读(113) 评论(0) 推荐(0)
摘要:Java内存溢出即程序在申请内存时,没有足够的空间供其使用,出现out of memory。 常见于四种情况: 1、栈溢出(StackOverflowError)、 2、堆溢出(OutOfMemoryError:java heap space)、 3、永久代溢出(OutOfMemoryError: 阅读全文
posted @ 2020-09-15 11:05 抽象Java 阅读(803) 评论(0) 推荐(0)
摘要:1)Java文件先通过编译器变为.class文件2)类加载器将.class文件加载到JVM。 类加载的过程简述: Java文件先通过编译器变为.class文件 类加载器将.class文件加载到JVM。 一、JVM 组成和作用1、 类装载器(Class Loader):.class文件由类加载器加载到 阅读全文
posted @ 2020-09-07 10:14 抽象Java 阅读(199) 评论(0) 推荐(0)
摘要:GC 垃圾回收器 垃圾回收算法: 标记清除法: 从根节点开始标记所有可达对象,其余没标记的即为垃圾对象,执行清除。但回收后的空间是不连续的 标记整理(压缩): 适合用于老年代的算法(存活对象多于垃圾对象)。标记后不复制,而是将存活对象压缩到内存的一端,然后清理边界外的所有对象。 复制算法: 将内存分 阅读全文
posted @ 2020-06-28 10:34 抽象Java 阅读(223) 评论(0) 推荐(0)
摘要:https://www.jianshu.com/p/9df9d318e838 阅读全文
posted @ 2020-06-28 08:52 抽象Java 阅读(115) 评论(0) 推荐(0)
摘要:JVM运行时数据区 Java虚拟机在运行时对该Java进程占用的内存进行的一种逻辑上的划分,包括方法区、堆内存、虚拟机栈、本地方法栈、程序计数器。 这些区块实际都是Java进程在Java虚拟机的运作下通过不同数据结构来对申请到的内存进行不同使用。 线程共享 堆内存: 存放对象实例及数组 所有线程都可 阅读全文
posted @ 2020-06-22 14:25 抽象Java 阅读(1010) 评论(0) 推荐(0)