--java代码执行顺序
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.bdqn.javascriptengine; /** * 初始化类的先后顺序 * @author OU * */ public class Demo01 { static { System.out.println("main 方法的静态代码块"); } public static void main(String[] args) { System.out.println("main 的主方法"); //主动引用 A a=new A(); System.out.println(a.length); //Class.forName(""); //被动引用 ,不会初始化A类 // A.MAX; //A[] a=new A[10]; //不会初始化B类 System.out.println(B.length); } } class B extends A{ static{ System.out.println("B 类的静态方法"); } } class A extends C{ public static int length=100; public static final int MAX=200; static{ System.out.println("A 类的静态代码块"); length=300; } public static void test(){ System.out.println("A 类的静态方法"); } } class C{ static{ System.out.println("C 类的静态方法"); } }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.bdqn.javascriptengine; public class Demo02 { public static void main(String[] args) throws ClassNotFoundException { System.out.println(ClassLoader.getSystemClassLoader()); System.out.println(ClassLoader.getSystemClassLoader().getParent()); System.out.println(ClassLoader.getSystemClassLoader().getParent().getParent()); //得到系统加载类的默认路径 System.out.println(System.getProperty("java.class.path")); ClassLoader classLoader=Class.forName("com.bdqn.javascriptengine.Student").getClassLoader(); System.out.println(classLoader); /** * sun.misc.Launcher$AppClassLoader@4bea71d4 * sun.misc.Launcher$ExtClassLoader@cd73c3c * D:workspace estreflectionin */ } }