一个Java类在运行时候,变量是怎么在JVM中分布的呢?
JVM学习第三篇思考:一个Java类在Jvm内存中是怎么存在的 又名:Java虚拟机的内存模型(JMM)是什么样的. 通过前面两篇文章的学习,我们知道了一个Java类的生命周期及类加载器。我们可以得到如下两幅图: 类生命周期: 编辑 父类委托机制: 编辑 思考: 编辑 我们编写的类中的变量、方法、对象这些都需要内存存放的。那么在运行时候这些数据在Java虚拟机内存中是怎么存放的呢? 本文目标: 凯哥(凯哥Java:kaigejava)希望通过本文学习,大家对Java虚拟机运行时数据区域有更深的了解 我们写的代码在JVM中是怎么存在的? 1:我们现在看看总体Java运行时数据模型: 编辑 2:我们来看看下面这段代码,执行的时候,在JVM中数据存放: 编辑 上面代码很简单,那么对应的变量、对象等在内存中都是怎么分配的呢? 2.1:方法区 注:在JDK1.8之后,方法区被元空间替换了。 方法区:用来存放的是类的信息、常量、静态变量等。该区域也是各个线程共享的内存区域。 根据Java虚拟机规范中的规定,当方法去无法满足内存分配的时候,会抛出:OutOfMemoryError异常的。 根据上面的...