package com.aosiding;
public class testdd {
private static int a = 10;
static {
System.out.println("调用了static");
System.out.println("a="+a);
System.out.println("改变a的值为5:");
a=5;
System.out.println("更改成功");
}
testdd(){
System.out.println("调用了无参构造");
System.out.println("a="+a);
System.out.println("改变a的值为20");
a=20;
System.out.println("更改a为20成功");
}
private void test(){
System.out.println("调用了test方法");
System.out.println(a);
a = 30;
System.out.println("更改a为30成功");
}
public static void main(String[] args) {
System.out.println("===========程序即将开始=========");
testdd testdd = new testdd();
System.out.println("=============创建testdd实例成功==========");
testdd.test();
System.out.println(a);
}
}
总结:加载类即先运行静态代码块,再无参构造方法
类加载的过程
java编译器将 .java 文件编译成扩展名为 .class 的文件。.class 文件中保存着java转换后,虚拟机将要执行的指令。当需要某个类的时候,java虚拟机会加载 .class 文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程被称为类的加载