JVM的面试题

1、JVM的组成

1.1、什么是程序计数器?

1.2、介绍下Java堆


JDK1.7与JDK1.8的内存结构区别

为什么会有这种内存结构的区别?

因为元空间/方法区存储的都是一些常量,项目随着动态类加载的情况越来越多,这块儿内存的大小就变的越来越不可控。小了会出现系统的内存溢出,大的话又浪费内存,现在都放到了本地内存,防止堆内存溢出(OOM)

1.3、什么是虚拟机栈?

1.4、解释一下方法区

1.5、你听过直接内存吗?

用直接内存就少拷贝了一次

2、类加载器

2.1、什么是类加载器?

2.2、什么是双亲委派模型?

2.3、类加载的执行流程

3、垃圾回收

3.1、对象什么时候可以被回收?

3.2、JVM的垃圾回收算法有哪些?

3.3、说一下JVM的分代回收

3.4、JVM有哪些垃圾回收器?

初始标记是先找出跟GC ROOT直接相连的对象

并发标记是找出剩下的对象

3.4、聊一下G1垃圾回收器

3.5、强、软、弱、虚引用的区别

4、JVM实践

4.1、JVM调优的参数在哪里设置?

4.2、JVM调优的参数有哪些?

4.3、JVM调优的工具

4.4、内存泄露的排查思路

4.5、CPU飙高的排查思路

相关推荐
HerayChen2 小时前
HbuilderX 内存溢出报错
java·大数据·linux
diegoXie2 小时前
Python / R 向量顺序分割与跨步分割
开发语言·python·r语言
程序员小白条2 小时前
0经验如何找实习?
java·开发语言·数据结构·数据库·链表
liulilittle2 小时前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
小马爱打代码2 小时前
Spring AI:搭建自定义 MCP Server:获取 QQ 信息
java·人工智能·spring
郭涤生2 小时前
QT 架构笔记
java·数据库·系统架构
daidaidaiyu2 小时前
基于LangGraph开发复杂智能体学习一则
java·ai
失散133 小时前
Python——1 概述
开发语言·python
萧鼎3 小时前
Python 图像哈希库 imagehash——从原理到实践
开发语言·python·哈希算法
小小8程序员3 小时前
STL 库(C++ Standard Template Library)全面介绍
java·开发语言·c++