java虚拟机
CJ_Geek
这个作者很懒,什么都没留下…
展开
-
JVM-方法栈
原理图 解释1:为什么递归会导致OOM? 因为每个方法对应一个栈帧,每个方法执行完成之后才会出栈,递归的方法只有递归完之后才会将所有方法出栈,所以容易产生OOM 解释2:程序计数器和方法栈是线程私有的。 解释3:JAVA字节码含义 源码 class Person { public static void main(String[] args) { Person p = new Person(); p.work(); } public int wo原创 2020-12-14 20:38:34 · 843 阅读 · 0 评论 -
Java内存区域及内存分配
1、Java内存区域 (1)线程私有 虚拟机栈:主要是来描述java方法的内存模型。每个方法在执行时都会创建一个栈帧,用户存储局部变量表,操作数栈,动态链接,方法出口的信息。每一个方法从调用直至完成的过程,就对应着一个栈帧在虚拟机栈中入栈到出栈的过程。 本地方法栈:为虚拟机使用到的Native方法服务 程序计数器:当前线程所执行的字节码的行号指示器 ...原创 2018-03-30 10:14:29 · 1447 阅读 · 0 评论 -
java内存模型
java内存模型的目的 屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能到达一致的内存访问效果。 主要目标 定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量与java中的变量有所不同。它包括实例字段、静态字段和构成数组对象的元素,但不包括局部变量和方法参数。 java内存模型规定了所有的变量都存储在主...原创 2018-03-30 17:53:35 · 133 阅读 · 0 评论