Java虚拟机——JVM分区
目录
前言
Java开发人员与C,C++开发人员的区别之一是把内存控制的权力交给了Java虚拟机。毫无疑问,这种模式很大程度上简化了Java开发中的内存管理环节。不过,也造成了在发生内存泄漏和溢出问题时,Java开发人员在不了解Java虚拟机运作的情况下很难去排查错误。因此,了解Java虚拟机的原理就显得尤为重要。
本篇博文是对JVM的初步理解下介绍JVM的分区情况。
由于更多的是理论学习,所以可能存在一些谬误,欢迎指正交流。
JVM分区
通常,在JDK1.7之前,Java虚拟机在执行Java程序的过程中包括5个区域,这五个区域分别是虚拟机栈、本地方法栈、程序计数器、方法区和堆。
其中,按线程公有或私有可以分为两类。
线程公有的包括方法区和堆,
线程私有的则是虚拟机栈,本地方法栈和程序计数器。
下面分别讲述一下我对他们的理解。
1.堆
JVM中的堆这个分区是JVM存放Java对象实例和数组的地方(对象引用呢?它被放置在栈中的局部变量表中了),
堆还会被细分为新生代和老年代&