文章目录
- JVM内存模型
- 1. 方法区(Method Area)
- 运行时常量池(Runtime Constant Pool)
- 2. 堆(Heap)
- 3. 栈(Stack)
- 4. 本地方法栈(Native Method Stack)
- 5. 程序计数器(Program Counter Register)
- 6. 直接内存(Direct Memory)
- JVM内存溢出的情况
Java的口号是:
“Write once,run anywhere”,即一次编写,到处运行。
为什么可以做到这样呢?其实就是依赖于JVM。
在不同的操作系统上,只要安装了对应的虚拟机,那么同样的一份代码,就可以随意移植。
当编写完Java代码时,即产生 .java文件,会通过Java编译器编译为.class 文件,然后通过Class Loader把类信息加载到JVM中,最后JVM再去调用操作系统。
这样,只要JVM正确执行.class文件,就可以实现跨平台了。

JVM内存模型
Java Virtual Machine (JVM)和计算机一样有操作栈和程序计数器,运行的方式也基本一致。

JVM同样以线程为最小单位运行,其中方法区与堆属于线程共享区,而栈与程序计数器属于线程