温故知新-JVM篇

简介: 温故知新-JVM篇

01 Mind Map

02 Question&Answer

Q1: 什么是HotSpot VM?

A:热点虚拟机,当前主流,最后由Oracle公司收购。


Q2:Java内存结构是怎样的(图片) ?

A:

class字节码文件 ->

类加载器 ->

本地方法栈 ->

Java虚拟机栈 ->

Java 堆(class对象) ->

方法区 ->

执行引擎 ->

垃圾回收器 ->

寄存器


Q3: Java 堆里面分为几个区域,分别为什么?

A:新生代(Eden、From、To)、老年代。


Q4: Java虚拟机栈里面包含什么?

A:对象引用(地址指针)、8种基本类型、方法出口等。


Q5: 本地虚拟机栈与Java虚拟机栈区别是什么?

A:执行方法考虑。


Q6: 方法区存放的是什么?

A:已被虚拟机加载的类信息,如常量、静态变量、即时编译后的代码数据等。


Q7: 什么是直接内存,与堆有什么关系?

A:堆外内存,堆总DirectByteBuffer作为这块内存的引用。


Q8: 什么是程序计数器,有什么特点?

A:线程的信号指示器,唯一没有定义OutOfMemoryError。


Q9: 什么是执行引擎,作用是什么?

A:负责执行Java字节码,编译成机器码才能执行。


Q10: System.gc()与finalize方法,调用后的效果以及什么时候被调用?


Q11: Java堆中的划分,分别名字为什么?各占比例多少?

A:(8:1:1)1->2。


Q12: 如何判断对象是否存活,原理是什么?

A:两种方法,第一种舍弃,第二种GCRoots。


Q13: 垃圾回收机制里用到的算法有哪些,分别用在哪个区域时间,举例子?

A:标志清除算法、复制算法、分代算法、标志压缩算法等。


Q14: GC类型有哪几种,什么时候触?发效率如何?

A:两种,从堆区域考虑。


Q15: JVM参数配置有哪些

A:垃圾收集器、堆初始值、堆最大值、新生代比例、新生代与老年代比例等。


Q16: tomcat调优建议,至少4条?

A:从垃圾收集器、堆设置、老年代比例等多方面考虑。


Q17: 垃圾收集器有哪些?

A:串行收集器、并行收集器、GMS、G1等。


Q18: 内存溢出与内存泄漏产生的原因?

A:溢出?泄漏?名字即可看出。


Q19: 字节码技术的优势及应用场景?

A:可以动态修改java字节码。


Q20: 常见的字节码操作库有那些?


Q21: 类加载器的流程是怎样的?


Q22: 热部署与热加载的区别,什么情况下使用?

目录
相关文章
|
存储 Java 编译器
JVM 从入门到精通(一)初窥Java虚拟机
JVM 从入门到精通(一)初窥Java虚拟机
138 0
JVM 从入门到精通(一)初窥Java虚拟机
|
存储 负载均衡 算法
神操!精选JVM垃圾回收机制全面分析,聊聊你眼中的JVM
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。
|
存储 缓存 算法
JVM学习笔记(一) 初遇篇
JVM学习笔记(一) 初遇篇
JVM学习笔记(一) 初遇篇
|
Java
JVM从入门到入土之实战JVM调优(二)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820…
146 0
|
缓存 Java BI
JVM从入门到入土之实战JVM调优(一)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
166 0
|
Java 程序员 调度
小师妹学JVM之:JVM中的Safepoints
小师妹学JVM之:JVM中的Safepoints
小师妹学JVM之:JVM中的Safepoints
|
存储 算法 安全
快速了解Java虚拟机(JVM)以及常见面试题(持续更新中......)
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
快速了解Java虚拟机(JVM)以及常见面试题(持续更新中......)
|
前端开发 Java 应用服务中间件
JVM从入门到入土之JVM的类加载机制(下)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
120 0
|
存储 算法 Oracle
JVM从入门到入土之JVM的类加载机制(上)
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
134 0

热门文章

最新文章