黑马程序员技术交流社区

标题: 被final修饰的菊部变量是放在常量池中还是堆中? [打印本页]

作者: yuchifeifan    时间: 2016-2-14 13:01
标题: 被final修饰的菊部变量是放在常量池中还是堆中?
常量池在堆中还是方法区中
作者: yuexiazixia    时间: 2016-2-14 20:16
对象都放在堆内存中,基本数据类型和引用数据类型的变量都放在栈空间中,局部变量也是变量,也在堆内存中,不过随着方法的调用完毕而消失,跟是不是被final修饰无关。
作者: yuexiazixia    时间: 2016-2-16 10:02
举个例子:
int a=3;这是一个基本数据类型的变量,其中a的空间是3,而a是一个地址值而已。
a在栈内存中,3在常量池中。
然后,局部变量被fianl修饰后,位置不变,被static修饰后,放在常量池中。
这么说明白了吗?
作者: yuexiazixia    时间: 2016-2-16 10:04
补充一说,基本和引用类型的变量都在栈中,局部变量也就是方法中的变量,变量就在栈中,不过随着方法调用完毕而消失,跟是不是被final修饰无关的
作者: liuxiaoye    时间: 2016-2-16 21:43
方法区中
作者: yuchifeifan    时间: 2016-2-17 00:21
yuexiazixia 发表于 2016-2-16 10:04
补充一说,基本和引用类型的变量都在栈中,局部变量也就是方法中的变量,变量就在栈中,不过随着方法调用完 ...

那如果基本数据类型或引用数据类型的 变量在成员位置他在堆里还是栈里啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2