今天在看java堆栈方法区的内容,怕自己忘了,做个记录。
基本数据类型数据的值,可以存放在堆,也可以存放在栈,这取决于他的声明位置
public class Test{
public static int a = 1; // 类静态变量,存放在方法区中
int b = 2; //类成员变量,
public void test(){
int c = 3; 局部变量
a:类静态变量,随类的加载而加载,存放在方法区中,类可以直接调用。(jdk1.7及以后,静态变量存放在堆中的Class对象上
)
b:类成员变量,随对象的创建而加载,对象存放在堆中(对象的引用存放在栈中),则b的值2存放在堆中。
c 存放在栈中,随方法的调用而入栈,
多谢评论区朋友的纠错,类静态变量确实存放在方法区中,已改正。
感谢评论区大佬,三年过去了,早已物是人非了,博主也从一个青葱少年变成抠脚大汉了,已然不从事纯后端的开发工作了,哈哈哈哈哈,但知识不分领域,类静态变量,根据现在常用java版本,雀食存在于堆中Class对象中,感谢