~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
建议与《JVM存储位置分配》https://blog.csdn.net/HD243608836/article/details/87940295结合着看,容易理解!!
总结:new出的对象存储堆中,””存储常量池中,基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储在堆中,为局部变量存储在栈中.
ps:
常量就是 程序运行中 不可以改变的量(数据)
变量就是 程序运行中 可以改变的量(数据)
所以,在“类的成员属性”中:
static修饰的变量(static int x=10)在方法区中,
final修饰的常量(static final int x=10)在方法区中的常量池中,
普通的变量(int x=10)在堆中。
原文:https://www.cnblogs.com/chargeworld/p/11973969.html