JVM虚拟机
文章平均质量分 94
跟随《深入理解 JVM 虚拟机》,总结 JVM 相关知识。
Ang Ga Ga
Rush!投入/专注/我永远爱Java。
展开
-
记录:Out Of Memory Error
文章目录一、问题背景二、发现问题三、关于 poi四、关于 OOMOOM 就是内存溢出吗?是 OOM 导致CPU飙到近100%的吗?为什么消息队列和微服务请求会超时,抛异常?OOM 会导致虚拟机退出吗?五、总结一、问题背景 在周六16:11、16:14分别收到告警邮件,JVM major垃圾回收器频繁警告,60s 秒内发生了 8 次、7 次 major GC;在 16:07 到 17:00 之间,收到 CPU 告警:5台机器 CPU 使用率连续 3 分钟超过阈原创 2021-09-05 17:41:31 · 623 阅读 · 1 评论 -
深入理解Java虚拟机之(3)垃圾收集器与内存分配策略
哪些内存需要回收? JVM的内存区域中,对于程序计数器、虚拟机栈、本地方法栈 线程私有的这 3 个区域,方法结束或者线程结束时,内存就随着被回收了,而堆和方法区,运行时才知道创建哪些对象,这部分内存的创建和回收都是动态的。垃圾收集器 和 分配关注的是这部分内存。 HotSpot虚拟机对于方法区的实现叫做...原创 2020-03-14 15:03:34 · 146 阅读 · 0 评论 -
深入理解Java虚拟机之(2)Java内存模型与线程
一、把我能想到的写下来:1.CPU的内存模型: 工作内存是各个CPU共享的一个区域,像堆、方法区都在这里,而程序计数器、线程私有的都是在CPU各自的工作内存中的,主内存是处理数据的地方。2.Java内存模型: 当线程对变量进行写入操作时,先会把值写入该线程的一级缓存中,然后再刷新到二级缓存中,而读取值是先到自己的一级缓存...原创 2020-02-18 18:38:41 · 195 阅读 · 1 评论 -
深入理解Java虚拟机之(1)内存区域
一、把我能想到的写下来:1.编译器将Java代码编译成 Class 字节码文件,然后交给虚拟机解释执行,因此实现 “跨平台” 、一次编译,处处运行。2.各内存区域:(1)堆: 线程共享。 内存中最大的区域,用来存放对象实例、数组。(2)方法区(非堆): &...原创 2020-02-11 14:52:13 · 196 阅读 · 0 评论