1. 什么是jvm?

    是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现。
    包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和一个存储方法域。

    1. jvm原理

      jvm是Java的核心和基础,在Java编译器和os平台之间的虚拟处理器,可在上面执行字节码程序。
      Java编译器只要面向jvm,生成jvm能理解的字节码文件。Java源文件经编译成字节码程序,通过jvm将每条指令翻译不同的机器码,通过特定平台运行。

    2. jvm常量池划分

      Class文件常量池
      是指编译生成的class字节码文件,其结构有一项是常量池,用于存放编译期生成的各种字面量和符号应用,这部分内容将在类加载后进入方法区的运行时常量池中存放。
      运行时常量池
      运行时常量池是方法区的一部分,是一块内存区域。Class文件常量池将在类加载后进入方法区的运行时常量池中存放。
      字符串常量池
      在JDK1.6 (含) 之前也是方法区的一部分,并且其中存放的是字符串的对象。
      在JDK1.7 (含) 之后,是在堆内存之中,存储的是字符串对象的引用,字符串实例是在堆中。
      字符串常量池是全局的,JVM中独此一份,因此也称为全局中非常常量池。

    3. JVM中有哪些类加载器?

      1. 启动类加载器<br /> 扩展类加载器<br /> 应用程序类加载器 <br /> 自定义类加载器