一次性搞清Java中的类加载问题

摘要:很多时候提到加载,大家总是没法马上回忆起顺序,这篇文章会用一个例子为你把加载的诸多问题一次性澄清。

本文分享自华为云社区《用1个例子加5个问题,一次性搞清java中的类加载问题【奔跑吧!JAVA】》,原文作者:breakDraw 。

很多时候提到类加载,大家总是没法马上回忆起顺序,这篇文章会用一个例子为你把类加载的诸多问题一次性澄清。

Java类的加载顺序

引用1个网上的经典例子,并做稍许改动,以便大家更好地理解。

原例子引用自:https://blog.csdn.net/zfx2013/article/details/89453482

public class Animal { private int i = test(); private static int j = method(); static { System.out.println("a"); } Animal(){ System.out.println("b"); } { System.out.println("c"); } public int test(){ System.out.println("d"); return 1; } public static int method(){ System.out.println("e"); return 1; } } public class Dog extends Animal{ { System.out.println("h"); } private int i = test(); static { System.out.println("f"); } private static int j = method(); Dog(){ System.out.println("g"); } public int test(){ System.out.println("i"); return 1; } public static int method(){ System.out.println("j"); return 1; } public static void main(String[] args) { Dog dog = new Dog(); System.out.println(); Dog dog1 = new Dog(); } }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgfwsp.html