Java面试题之JVM

JVM整体架构

minor gc:回收年轻代的垃圾对象

full GC:回收整个堆的垃圾对象

当full GC也回收不了就会OOM

STW运行时会停掉所有用户线程

JVM调优的真正目的就是为了减少STW的次数

为什么会有STW:避免非垃圾对象发生变化,暂停用户线程,收集垃圾,再回复用户线程

首先,如果不暂停用户线程,就意味着在垃圾收集过程中会持续产生新的垃圾对象,无法完全清理干净。

其次,用户线程的运行必然会导致对象的引用关系发生改变,可能出现两种情况:多标和漏标

多标:原本并不是垃圾对象,但在垃圾收集过程中,用户线程修改了其引用关系,导致垃圾收集器将其误认为是垃圾。这种情况相对较好,只会产生一些临时的浮动垃圾,下次垃圾收集过程时会被清理掉。

漏标:原本是垃圾对象,但在垃圾收集过程中,用户线程重新将其引用指向了该对象,如果垃圾收集器错误地将其回收,将导致程序运行错误。

电商网站优化

调优:

分析系统的业务情况,压力情况,对Java虚拟机各块区域进行合理的分配,尽量在年轻代GC回收

相关推荐
一只废狗狗狗狗狗狗狗狗狗3 分钟前
c语言速通复习
c语言·开发语言
程序员Ctrl喵5 分钟前
Flutter 第三阶段:基础 Widget 全面指南
开发语言·javascript·flutter
用户9751470751366 分钟前
Tomcat安装及配置教程(保姆级)
java
计算机安禾8 分钟前
【数据结构与算法】第31篇:排序概述与插入排序
c语言·开发语言·数据结构·学习·算法·重构·排序算法
xyx-3v8 分钟前
C++构造函数、析构函数与拷贝控制深度解析
开发语言·c++
Larry_Yanan12 分钟前
Qt+OpenCV(一)环境搭建
开发语言·c++·qt·opencv·学习
列星随旋15 分钟前
基于 Redis + Lua,实现“多维度原子限流”(令牌桶 + 滑动窗口)
java·redis·lua
独特的螺狮粉18 分钟前
开源鸿蒙跨平台Flutter开发:微波射频阻抗匹配系统-极坐标史密斯圆图与天线信号渲染架构
开发语言·flutter·华为·架构·开源·harmonyos
冰暮流星18 分钟前
javascript之dom方法访问内容
开发语言·前端·javascript
我命由我1234520 分钟前
在 React 项目中,配置了 setupProxy.js 文件,无法正常访问 http://localhost:3000
开发语言·前端·javascript·react.js·前端框架·ecmascript·js