关于类加载顺序
Posted lshspace
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于类加载顺序相关的知识,希望对你有一定的参考价值。
父类:
package org.com.extendTest; public abstract class PerantClass { static int a = init(); public static int init() { System.out.println("我是父类(静态变量)"); return 1; } static { System.out.println("我是父类(静态代码块)!"); } public PerantClass() { System.out.println("我是父类(构造器)"); } { System.out.println("我是父类(普通代码块)!"); } public void sayHello() { System.out.println("我是父类(成员方法)"); } }
子类:
package org.com.extendTest; public class ChildClass extends PerantClass { static { System.out.println("我是子类(静态代码块)!"); } static int a = init(); public ChildClass() { System.out.println("我是子类(构造器)"); System.out.println("--------------------"); } { System.out.println("我是子类(普通代码块)!"); } public void sayHello() { System.out.println("我是子类(成员方法)"); } public static void main(String[] args) { ChildClass class1 = new ChildClass(); class1.sayHello(); } public static int init() { System.out.println("我是子类(静态变量)"); System.out.println("--------------------"); return 1; } }
结果:
结论:1.先父类后子类
2.static顺序为代码顺序
3.static > 普通代码块 > 构造器 > 成员方法
以上是关于关于类加载顺序的主要内容,如果未能解决你的问题,请参考以下文章
关于js----------------分享前端开发常用代码片段
Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段