02-01-01、JVM基础知识
1、JVM JVM即java虚拟机(Java Virtual Machine),是java语言的运行平台,java代码编译成符合 jvm规范 的 字节码文件 ,然后由 jvm加载并执行 。 2、JVM是如何进行类加载的?类加载有哪些步骤?类的生命周期是什么样的? 类从被加载到JVM内存开始,到卸载出内存为止,其生命周期包括: 加载(Loading) :通过类的全限定名获取定义此类的 二进制字节流 ,这个二进制流可以任意从哪里获取,可以从文件、网络、数据库、jsp文件、运行时动态生成都可以;将这个字节流所代表的静态存储结构转化为 方法区的运行时数据结构 ;在Java堆中生成代表这个类的Class对象,作为方法区这些数据的访问接口。 验证(Verification) :检查二进制字节流是否符合JVM规范,以免危害虚拟机的执行; 准备(Preparation) : 为类变量(即static修饰的变量)分配内存 并设置类变量的初始值,这些内存都将 在方法区中进行分配 ; 解析(Resolution) :将常量池内的符号引用转换为直接引用; 初始化(Initialization) :就是执行类的构造方法; 使用(Using) : 卸载(Unloading) :使用完后实例被回收 3、JVM有哪些类型的类加载器?如何自定义类加载器?自定义类加载器使用在哪些场景? 启动类加载器