JVM面试篇

面试篇就是复习前面学的

什么是JVM

1.定义:JVM指的是Java虚拟机,本质是一个运行在计算机上的程序

2.作用:为了支持Java中Write Once ,Run Anywhere 编写一次 到处运行的跨平台特性

功能:

1.解释和运行

2.内存管理

3.即时编译

组成

常见的jvm

总结

字节码的组成

运行时数据区

方法区、堆、本地方发栈、虚拟机栈、程序计数器(后三不共享 前二共享)

直接内存主要是NIO使用,由操作系统直接管理,不属于JVM内存

程序计数器

栈-----java虚拟机栈

栈帧的组成:

1.局部变量表

2.操作数栈

3.帧数据

本地方法栈

创建出来的对象都存在于堆上

栈上的局部变量表中,可以存放堆上对象的引用。静态变量也可以存放堆对象的引用,通过静态变量就可以实现对象在线程之间的共享

堆是垃圾回收的最主要部分,堆结构更详细的划分于垃圾回收器有关

方法区

直接内存

总结

哪些区域会出现内存溢出,会有什么现象?

内存溢出指的是内存某一块区域的使用量超过了允许使用的最大值,从而使用内存时因空间不足而失败,虚拟机一般会抛出指定的错误。

在java虚拟机中,只有程序计数器不会出现内存溢出情况,因为每个线程的程序计数器只保存一个固定长度的地址

堆内存溢出:

栈内存溢出:

方法区的内存溢出

直接内存溢出

总结

JVM在jdk6-8之间在内存区域上有什么不同?

1.方法区的实现

2.字符串常量池的位置

用元空间替换永久代的原因:

字符串常量池

总结

类的生命周期

加载阶段

1.加载阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制的方式获得字节码信息

程序员可以使用java代码拓展不同的渠道

2.类加载器在加载完类之后,java虚拟机会将字节码中的信息保存到内存的方法区中。在方法区生成一个InstanceKlass对象,保存类的所有信息

3.在堆中生成一份与方法区中数据类似的java.lang.Class对象,作用是在java代码中获得类的信息

连接阶段

初始化阶段

卸载阶段

总结

什么是类加载器

类加载器负责在类加载过程中将字节码信息以流的方式获得并加载到内存中。在JDK8及之前如下:

启动类加载器 JDK9之前是c++编写,之后是java编写

扩展类加载器

应用程序类加载器和自定义类加载器

总结

什么是双亲委派机制

双亲委派机制是指当一个类加载器接收到加载类的任务时,会向上查找是否加载过,再由顶向下进行加载

双亲委派机制有什么作用?

1.保证类加载的安全性

2.避免重复加载

总结

如何打破双亲委派机制

重写loadclass

Tomcat的自定义类加载器

总结

如何判断堆上的对象有没有被引用

引用计数法 可达性分析法

引用计数法会为每个对象维护一个引用计数器,当对象被引用时+1,取消引用时-1

缺点:

什么是GCRoot对象

总结

JVm有什么引用类型

Threadlocal为什么要用弱引用

总结

有什么常见的垃圾回收算法

标记清除

复制算法

标记整理算法

分代GC

概念太多了 自己回去看之前的笔记吧。。。。

有哪些常用的垃圾回收器

看之前的概念

如何解决内存泄漏

主要思路

常见的JVM参数

相关推荐
小程故事多_802 小时前
[大模型面试系列] 深度解析ReAct框架,大模型Agent的“思考+行动”底层逻辑
人工智能·react.js·面试·职场和发展·智能体
2301_795099742 小时前
golang如何在Gin中自定义验证器_golang Gin自定义验证器实现方法
jvm·数据库·python
2301_766283443 小时前
如何在MongoDB GridFS中进行按文件大小(length)范围的查询
jvm·数据库·python
那我掉的头发算什么3 小时前
【面试八股】一篇文章讲清楚JVM面试常考
jvm·面试·职场和发展·java虚拟机
乔代码嘚3 小时前
2026 AI大模型全套资料免费领!30天从入门到架构部署,附面试真题与行业报告
人工智能·语言模型·面试·大模型·产品经理·ai大模型·大模型学习
冬天vs不冷3 小时前
面试必知必会(13):MySQL锁机制
mysql·面试·职场和发展
华夏之光永存3 小时前
独家:国家级光刻机项目架构师面试对话实录
面试·职场和发展
冬天vs不冷3 小时前
面试必知必会(14):MySQL执行计划与SQL优化
sql·mysql·面试
草莓熊Lotso3 小时前
《告别 “会用不会讲”:C++ string 底层原理拆解 + 手撕实现,面试 / 开发都适用》
开发语言·c++·面试
KNeeg_3 小时前
黑马点评完整代码(RabbitMQ优化)+简历编写+面试重点 ⭐
java·redis·后端·spring·面试·职场和发展·黑马点评