JVM
JVM 是 Java Virtual Machine 的简称,意为 Java虚拟机。
虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。
常见的虚拟机:JVM、VMwave、Virtual Box。
JVM 和其他两个虚拟机的区别:
-
VMwave与VirtualBox是通过软件模拟物理CPU的指令集,物理系统中会有很多的寄存器;
-
JVM则是通过软件模拟Java字节码的指令集,JVM中只是主要保留了PC寄存器,其他的寄存器都进行了裁剪。
JVM 是一台被定制过的现实当中不存在的计算机。
JVM内存区域划分
JVM内存区域主要有四部分:
- 堆
- 栈
- 程序计数器
- 方法区
【堆】
堆的作用:程序所创建的对象都是保存在堆里面的。
也就是说,堆的内存空间是最大的
【栈】
栈细分,还可以分为:
- Java虚拟机栈:Java代码使用的栈
- 本地方法栈:给JVM内部C++代码使用的栈,也就是给JVM中的本地方法使用的栈
栈中存放最关键的信息是方法之间的调用关系和局部变量。
【方法区】
方法区里面存放的是类对象
类对象里面有什么?类对象里面有代码和静态变量
方法区里面还有个运行时常量池
运行时常量池是方法区的一部分&#