
在Java中,成员变量的值会被加载到方法区吗?
在Java类中,我的成员变量已经赋了初值,那么在加载该类信息到方法区中时,会把成员变量的初值加载到方法区吗?还是只是加载变量和变量的类型到方法区???...
在Java类中,我的成员变量已经赋了初值,那么在加载该类信息到方法区中时,会把成员变量的初值加载到方法区吗?还是只是加载变量和变量的类型到方法区???
展开
1个回答
展开全部
值不会“加载”到方法区,能够加载的是静态变量和方法等实体。
一个类被加载到JVM中并执行的过程分为Loading、Validation、Preparation、Resolution和Initialization5步。其中在方法区中为静态成员和类方法分配空间并为静态成员分配默认值发生在第3步Preparation。注意这里的默认值是JVM的默认值,例如对int来说是0,对boolean来说是false,对引用类型来说是null。而类中给静态成员赋初值的代码要等到第5步也就是Initialization时才会执行。
一个类被加载到JVM中并执行的过程分为Loading、Validation、Preparation、Resolution和Initialization5步。其中在方法区中为静态成员和类方法分配空间并为静态成员分配默认值发生在第3步Preparation。注意这里的默认值是JVM的默认值,例如对int来说是0,对boolean来说是false,对引用类型来说是null。而类中给静态成员赋初值的代码要等到第5步也就是Initialization时才会执行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询