Java常量,变量,对象(字面量)在JVM内存中的存储位置
苦苦研究了快一天了,终于找到个“大神精准的总结”了!!!!!!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
建议与《JVM存储位置分配》https://blog.csdn.net/HD243608836/article/details/87940295结合着看,容易理解!!
- 针对Java中的常量,变量,字面量,对象的存储,略作总结.
总结:new出的对象存储堆中,””存储常量池中,基本类型字面量为常量或静态变量时,存储在常量池,为成员变量存储在堆中,为局部变量存储在栈中.
ps:
常量就是 程序运行中 不可以改变的量(数据)
变量就是 程序运行中 可以改变的量(数据)
所以,在“类的成员属性”中:
static修饰的变量(static int x=10)在方法区中,
final修饰的常量(static final int x=10)在方法区中的常量池中,
普通的变量(int x=10)在堆中。