![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试题 - JVM
文章平均质量分 94
JVM面试题整理
桃月十二_
这个作者很懒,什么都没留下…
展开
-
JVM调优
6、为了验证自己的猜想,于是准备登录后台去测试下,结果在测试的过程中发现到处订单的按钮前端居然没有做点击后按钮置灰交互事件,结果按钮可以一直点,因为导出订单数据本来就非常慢,使用的人员可能发现点击后很久后页面都没反应,结果就一直点,结果就大量的请求进入到后台,堆内存产生了大量的订单对象和EXCEL对象,而且方法执行非常慢,导致这一段时间内这些对象都无法被回收,所以最终导致内存溢出。4、通过线程进行分析,先找到了几个正在运行的业务线程,然后逐一跟进业务线程看了下代码,发现有个引起我注意的方法,导出订单信息。原创 2023-04-11 17:40:34 · 640 阅读 · 0 评论 -
【JVM】Java内存模型
启动一个jvm虚拟机程序就是启动了一个进程。启动的同时就在操作系统的堆内存中开辟一块jvm内存区虚拟机栈、本地方法栈、程序计数器这三个模块是线程私有的,有多少线程就有多少个这三个模块,声明周期跟所属线程的声明周期一致。以程序计数器为例,因为多线程是通过线程轮流切换和分配执行时间来实现,所以当线程切回到正确执行位置,每个线程都有独立的程序技术器,各个线程之间的计数器互不影响,独立存储。其余是跟JVM虚拟机的生命周期一致。原创 2022-09-28 14:51:03 · 450 阅读 · 0 评论 -
【JVM】垃圾回收
Serial垃圾回收器为单线程串行回收器。采用标记-复制算法、串行回收和STW机制进行内存回收;Serial Old垃圾回收器为Serial提供的老年代垃圾回收器,采用标记-整理算法、串行回收和STW机制进行内存回收。Serial Old在Server模式下主要有两个用途:与新生代的Parallel Scavenge配合使用(弃用);作为老年代CMS回收器的后备方案。原创 2022-09-28 16:20:51 · 312 阅读 · 0 评论 -
OOM的排查思路
程序的内存不够了,挂掉了Heap dump文件是一个二进制文件,它保存了某一时刻JVM堆中对象使用情况。Heap Dump文件是指定时刻的Java堆栈的快照,是一种镜像文件。Heap Dump一般都包含了一个堆中的Java Objects, Class等基本信息。同时,当你在执行一个转储操作时,往往会触发一次GC,所以你转储得到的文件里包含的信息通常是有效的内容(包含比较少,或没有垃圾对象了)。我们可以这么理解:heap dump记录内存信息的,thread dump是记录CPU信息的。转载 2022-10-26 08:45:57 · 304 阅读 · 0 评论 -
JVM的三种常见GC:Minor GC、Major GC与Full GC
这个时候,“From"和"To"会交换他们的角色,也就是新的"To"就是上次GC前的“From”,新的"From"就是上次GC前的"To”。因此,这种方式分配内存和清理内存的效率都极高,这种垃圾回收的方式就是著名的“停止-复制(Stop-and-copy)”清理法(将Eden区和一个Survivor中仍然存活的对象拷贝到另一个Survivor中),这不代表着停止复制清理法很高效,其实,它也只在这种情况下(基于大部分对象存活周期很短的事实)高效,如果在老年代采用停止复制,则是非常不合适的。原创 2022-11-02 16:29:07 · 880 阅读 · 0 评论