随笔分类 - JVM
摘要:Java内存模型(Java Memory Model,JMM)定义了Java程序在多线程环境下如何与主内存和工作内存交互的规范。JMM规定了变量的可见性、原子性和顺序性等方面的规则,保证了多线程程序的正确性和可靠性。 Java内存模型包括以下几个核心概念: 主内存(Main Memory):主内存是
阅读全文
摘要:在程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来对该类进行初始化。如果没有意外,JVM 将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或类初始化。 类的加载 类加载指的是将类的 class 文件读入内存,并为之创建一个 java.lang.Cl
阅读全文
摘要:运行时数据区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。从下面这张图可以看出来,Java数据区域分为五大数据区域 程序计
阅读全文
摘要:引言 程序计数器、虚拟机栈、本地方法栈 3 个区域随线程生灭(因为是线程私有),栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。而 Java 堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,我们只有在程序处于运行期才知道那些
阅读全文