黑马程序员技术交流社区

标题: 类被加载的时候一定会初始化静态变量吗? [打印本页]

作者: aohn1117    时间: 2016-2-8 12:01
标题: 类被加载的时候一定会初始化静态变量吗?
class HaHa {
    static final int a= 1;
    static int b = 2;
    final int  c = 3;
}

调用a的时候类会加载进内存吗?
a位于内存的哪个地方???
b位于类的静态区中吗?
c位于堆中吗?
作者: linxiaom    时间: 2016-2-8 12:15
是的,C是在堆中
作者: 隔壁老王住隔壁    时间: 2016-2-9 23:32
a位于静态区
作者: 隔壁老王住隔壁    时间: 2016-2-9 23:34
a,b位于静态区,c 在堆内存中
作者: ChiCaoMa    时间: 2016-2-10 10:56
我就补充一句话吧--静态变量随着类的加载而加载,随着类的消失而消失。静态变量也叫类变量。静态的变量存在于方法区的静态区中。
作者: boboyuwu    时间: 2016-2-10 22:20
对的   a在常量区中   b在类的静态区中  c在常量区中
作者: boboyuwu    时间: 2016-2-10 22:21
隔壁老王住隔壁 发表于 2016-2-9 23:34
a,b位于静态区,c 在堆内存中

C在堆区中?
作者: 隔壁老王住隔壁    时间: 2016-2-12 20:28
boboyuwu 发表于 2016-2-10 22:21
C在堆区中?

是的,必须在
作者: 隔壁老王住隔壁    时间: 2016-2-12 20:30
boboyuwu 发表于 2016-2-10 22:20
对的   a在常量区中   b在类的静态区中  c在常量区中

C是成员变量,在堆内存
作者: 1178988315    时间: 2016-2-13 00:07
常量存储在常量区。
作者: 苗超维    时间: 2016-2-14 00:27
静态成员随着类的加载而加载,a,b 在静态去,c 在堆内存
作者: bolt    时间: 2016-2-14 12:47
大家的答案好像不太一样啊 我做等权威人士告知。




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