1.什么是 JVM?它有什么作用?
JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程序,把字节码翻译成机器码再交由 CPU 执行的一个虚拟计算器。
- 介绍一下类的生命周期
类的生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)共 7 个阶段(验证、准备、解析3个部分统称为连接)。其中,加载、验证、准备、初始化、卸载这5个阶段的顺序是确定的,而解析阶段则不一定,它在某些情况下可以在初始化完成后在开始,这是为了支持Java语言的运行时绑定。其中加载、验证、准备、解析及初始化是属于类加载机制中的步骤。
3.JVM的永久代中会发生垃圾回收么?
垃圾回收不会发生在永久代,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区 (注:Java8中已经移除了永久代,新加了一个叫做元数据区的native内存区)。
4.Java类加载的过程是什么?
Java类加载需要经历一下几个过程:
(1) 加载:加载时类加载的第一个过程