java static加载顺序

java static加载顺序,第1张

个人学习总结:

1.含有static的静态代码块和类变量先执行,执行一次之后就不再需要加载,静态代码块和类变量没有特定的先后顺序,按照代码顺序执行

2.如果类之间存在继承关系,先加载父,在加载子的内容

3.单独一个类的加载顺序应该是,静态代码块(类变量)--------成员变量-----------构造方法

注:静态方法是调用才会执行

测试代码:

public class Girl {
    Person person = new Person("Girl");
    static{
        System.out.println("Girl static");
    }
    static Person staticPerson = new Person("GirlStaticPerson");
    public Girl() {
        System.out.println("Girl constructor");
    }
    public static void main(String[] args) {
        new MyGirlFriend();
    }
}
class Person{
    static{
        System.out.println("person static");
    }
    static Person staticPerson = new Person("PersonStaticPerson");
    public Person(String str) {
        System.out.println("person "+str);
    }
}
class MyGirlFriend extends Girl {
    Person person = new Person("MyGirlFriend");
    static Person myStaticPerson = new Person("MyStaticPerson");
    static{
        System.out.println("MyGirlFriend static");
    }
    public MyGirlFriend() {
        System.out.println("MyGirlFriend constructor");
    }

}

输出结果:

Girl static
person static
person PersonStaticPerson
person GirlStaticPerson
person MyStaticPerson
MyGirlFriend static
person Girl
Girl constructor
person MyGirlFriend
MyGirlFriend constructor

学习下方博客,感觉他对加载顺序总结的很好:先静后非,先父后子,先块后器。

个人学习记录,如有侵权,会主动删除该文章。

 参考资源:java static 加载顺序_一个例子搞清楚Java类加载顺序_愿水长流的博客-CSDN博客

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/883674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-14
下一篇 2022-05-14

发表评论

登录后才能评论

评论列表(0条)

保存