前言
java作为一款能够自动管理内存的语言,与传统的c/c++语言相比有着自己独特的优势。虽然我们无需去管理内存,但为了防范可能发生的异常,我们需要对java内部数据如何存储有一定了解,已应对突发问题,写出更好的程序
JVM对运行时程序内存的划分
java程序在被编译成字节码后,由JVM执行,执行期间产生的所有数据,会被分门别类的存储在JVM预设好的区域里,具体情况如下所示
以下为java8的内存分布图
Tips:红色是线程共享的,黄色是线程私有的
接下来我们着重讨论Java8中的内存分布情况
JVM管理的内存
这部分内存在JVM中,由JVM直接分配,初始大小、最大大小都可以由JVM进行配置
程序计数器
是一段较小的内存空间,用于告诉字节码解释器下一条执行哪一个字节码指令<