Java内存模型即途中的Runtime Data Area区域
其中,一部分是线程私有的部分,另外一部分是线程共享的部分。
Java内存模型之线程私有部分
私有部分为:程序计数器、虚拟机栈、本地方法栈
- 程序计数器
- 代表当前线程所执行的字节码行号指示器(是逻辑计数器而不是物理计数器)
- 改变计数器的值来选取下一条需要执行的指令
- 和线程是一对一的关系,即“线程私有”
- 对Java方法计数,如果是native方法则计数器的值为Undefined
- 不会发生内存泄漏
- 虚拟机栈(Stack)
- Java方法执行的内存模型
- 有固定容量
- 由虚拟机自动管理的
- 包含多个栈帧,当方法调用结束时,帧才会被销毁
其中,局部变量表包含方法执行过程中的所有变量,操作数栈:入栈,出栈,复制,交换,产生消费变量
编写下面这个类,先对其用javac进行编译再用javap进行反编译
package com.interview.javabasic.jvm.model;
public class ByteCodeSample {
public static int add (int a, int b) {
int c = 0;
c = a + b;
return c;
}
}
反编译的内容:
D