java中static final变量存储内存哪个区?

我们知道static在静态存储区
final在常量区
那么static final在哪个区?如:static final int MAX=9;
静态还是常量区?
如果在静态区,如何保证该变量值不被更改?

存储在静态区的,他不能被改变是因为java存储特性决定的,java在存储数据时不只存储了数据,还存储了数据想关信息如:数据类型等,在初始化MAX的时候已经生命是final的,那么他将不能被改变
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-30
1.带有static的变量或者方法是属于类的,也就是说,类成员是被储存在堆内存里面的。
2.final 是保护 所修饰的类、方法、变量不能被改变的,并不占用内存,
3.final|static只是一个修饰符

修饰符通俗来说只是一个标志!本回答被网友采纳
第2个回答  2020-06-14
sun规范规定内存区域对用户来说是不透明的
即用户不用考虑内存的堆和栈,不过我个人觉的java中堆和栈已经不像c++里分的那么清楚了,在java中不分堆栈,堆栈一个概念!只是个人观点!
第3个回答  2013-03-31
这是一个对常量的定义,放在常量池 注意你写的不是static int MAX=9;
第4个回答  2018-02-01
放在堆内存,呵呵,厉害
相似回答