Java的类的加载过程
1.加载:查找并加载类的文件数据
2.连接:将已经读入内存的类的文件数据合并到jvm运行时环境中去
a) 验证:确保被加载.class文件的规范符合jvm运行的规范
b) 准备:为类的静态变量分配内存,并初始化
c) 解析:把常量池中的符号引用转换成直接引用
3.初始化:为类的静态变量初始化值
如果理解上面的内容:
public class MyClassA {
private static MyClassA myClassA = new MyClassA();
private static int a=0;
private static int b;
public MyClassA() {
a++;
b++;
}
public static MyClassA getObject(){
return myClassA;
}
public int getA(){
return a;
}
public int getB(){
return b;
}
public static void main(String[] args) {
MyClassA myClassA = MyClassA.getObject();
System.out.println("a="+myClassA.getA()+" ,b="+myClassA.getB());
}
}
请问数据的结果是多少就能很明白?
能否结合所给代码示例进一步解析一呢? 解释一下呗,没搞懂结果为什么是a=0,b=1 右京也爱花吗 发表于 2021-7-1 12:08
解释一下呗,没搞懂结果为什么是a=0,b=1
new 对象在上面 这时候 a会初始化0并++操作,但是static int a=0有对a重新进行了初始化
bzh2021 发表于 2021-7-1 14:11
new 对象在上面 这时候 a会初始化0并++操作,但是static int a=0有对a重新进行了初始化
半知半解,谢谢啦
页:
[1]