1、JVM是什么?
JVM(Java Virtual Machine)是Java虚拟机,它是一个能够运行Java字节码的虚拟机进程。JVM是Java程序跨平台运行的基础,它将Java应用程序编译成与平台无关的字节码(.class文件)。然后根据具体的操作系统和硬件平台将这些字节码转换成可以直接执行的机器码。JVM负责管理应用程序的内存、执行垃圾回收和提供其他系统资源,确保Java程序在各种环境中都能稳定运行。
2、说一说JVM内存模型?
JVM内存模型主要包括以下几个部分:
- 堆(Heap):存放对象实例,是线程共享的一块内存区域。
- 方法区(Method Area):存储已被虚拟机加载的类信息、常量、静态变量等数据,同样线程共享。
- 栈(Stack):存放局部变量表(包括基本数据类型和对象引用),每个线程拥有自己的栈,随线程生而生,随线程灭而灭。
- 程序计数器(Program Counter Register):当前线程所执行的字节码的行号指示器,每个线程都有自己的程序计数器。
- 本地方法栈(Native Method Stack):服务于本地方法调用,类似于Java栈,但服务的是Native 方法。