java中的静态成员是否是在类加载的时候就被加载到内存中了?
答案:3 悬赏:70 手机版
解决时间 2021-03-07 11:08
- 提问者网友:你挡着我发光了
- 2021-03-07 01:28
java中的静态成员是否是在类加载的时候就被加载到内存中了?
最佳答案
- 五星知识达人网友:鱼忧
- 2021-03-07 02:09
对,首先可以肯定的是你的说法是正确的。
类加载的过程有以下几个过程:加载、验证、准备、解析
在准备的过程中,静态成员变量就会进行内存分配,而不包括实例变量,实例变量是在对象实例化随着对象一起分配在java堆中的。但是要注意一点,比如:public static int a=1;那变量在准备阶段过后的初始值是0而不是1.因为这个时候尚未执行任何的Java方法。而是赋值了一个初始值,如果是引用成员变量就会为null,其他基本类型对应的是其基本默认值。
ps:以上资料来自《深入Jvm虚拟机》
类加载的过程有以下几个过程:加载、验证、准备、解析
在准备的过程中,静态成员变量就会进行内存分配,而不包括实例变量,实例变量是在对象实例化随着对象一起分配在java堆中的。但是要注意一点,比如:public static int a=1;那变量在准备阶段过后的初始值是0而不是1.因为这个时候尚未执行任何的Java方法。而是赋值了一个初始值,如果是引用成员变量就会为null,其他基本类型对应的是其基本默认值。
ps:以上资料来自《深入Jvm虚拟机》
全部回答
- 1楼网友:走死在岁月里
- 2021-03-07 03:42
是的,你可以这么去验证。如下代码
static String KEY = buildKey();
private static String buildKey() {
//这里打个断点
return "key";
}
- 2楼网友:琴狂剑也妄
- 2021-03-07 02:22
先加载类,类一旦被用到,就会立即加载 而且只加载一次
静态方法是在类加载时就加载,
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯