jvm面试

1 、知识点汇总
JVM Java 运行基础 , 面试时一定会遇到 JVM 的有关问题 , 内容相对集中 , 但对只是深度要求较高 .
其中内存模型 , 类加载机制 ,GC 是重点方面 . 性能调优部分更偏向应用 , 重点突出实践能力 . 编译器优化
和执行模式部分偏向于理论基础 , 重点掌握知识点 .
需了解 内存模型 各部分作用 , 保存哪些数据 .
类加载 双亲委派加载机制 , 常用加载器分别加载哪种类型的类 .
GC 分代回收的思想和依据以及不同垃圾回收算法的回收思路和适合场景 .
性能调优 常有 JVM 优化参数作用 , 参数调优的依据 , 常用的 JVM 分析工具能分析哪些问题以及使用方法 .
执行模式 解释 / 编译 / 混合模式的优缺点 ,Java7 提供的分层编译技术 ,JIT 即时编译技术 ,OSR 栈上替
,C1/C2 编译器针对的场景 ,C2 针对的是 server 模式 , 优化更激进 . 新技术方面 Java10 graal 编译器
编译器优化 j avac 的编译过程 ,ast 抽象语法树 , 编译器优化和运行器优化 .
2 、知识点详解:
1 JVM 内存模型:
线程独占 : , 本地方法栈 , 程序计数器 线程共享 : , 方法区
2 、栈:
又称方法栈 , 线程私有的 , 线程执行方法是都会创建一个栈阵 , 用来存储局部变量表 , 操作栈 , 动态链接 , 法出口等信息 . 调用方法时执行入栈 , 方法返回式执行出栈 .
3 、本地方法栈
与栈类似 , 也是用来保存执行方法的信息 . 执行 Java 方法是使用栈 , 执行 Native 方法时使用本地方法栈 .
4 、程序计数器
保存着当前线程执行的字节码位置 , 每个线程工作时都有独立的计数器 , 只为执行 Java 方法服务 , 执行
Native 方法时 , 程序计数器为空 .
5 、堆
JVM 内存管理最大的一块 , 对被线程共享 , 目的是存放对象的实例 , 几乎所欲的对象实例都会放在这里 ,
当堆没有可用空间时 , 会抛出 OOM 异常 . 根据对象的存活周期不同 ,JVM 把对象进行分代管理 , 由垃圾回收器进行垃圾的回收管理
6 、方法区:
又称非堆区 , 用于存储已被虚拟机加载的类信息 , 常量 , 静态变量 , 即时编译器优化后的代码等数据 .1.7
的永久代和 1.8 的元空间都是方法区的一种实现

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值