类加载:Java命令的作用是启动虚拟机,虚拟机通过输入流,从磁盘上将字节码文件(.class文件)中的内容读入虚拟机,并保存起来的过程就是类加载。
类加载特性:
*在虚拟机的生命周期中一个类只被加载一次。
*类加载的原则:延迟加载,能少加载就少加载,因为虚拟机的空间是有限的。
*类加载的时机:
1)第一次创建对象要加载类。
2)调用静态方法时要加载类,访问静态属性时会加载类。
3)加载子类时必定会先加载父类。
4)创建对象不用加载类。
5)子类调用父类的静态方法时
-当子类没有覆盖父类的静态方法时,只加载父类,不加载子类
-当子类有覆盖父类的静态方法时,既加载父类,又加载子类。
6)访问静态常量,如果编译器可以计算出常量的值,则不会加载类,例如:public static final int a=123;否则会加载类,例如:public static final int a=math.PI。
static代码块在类加载时自动执行且只执行一次,非静态代码块在创建对象时自动执行,不创建对象不执行,且在构造函数前执行。构造函数,每次创建对象时,最后调用。创建子类对象时,先创父类对象,再创建子类对象。
执行顺序:静态代码块-->非静态代码块-->构造方法
java基础(一)之类加载
最新推荐文章于 2023-11-30 13:48:22 发布