java类的静态属性和静态块执行条件如下所示:
1.如果java类在项目启动的时候,就创建了实例(例如new Person())或者此类的对象交给spring框架管理(依赖注入ioc),那么项目启动的时候就执行这个Java类的所有属性(包括静态和非静态属性)和static块。总体来说,创建此java类的对象的时候就会执行。
2.如果不创建对象,而是使用类来直接调用其静态属性或静态方法(Person.name等),此时也会执行Person类的静态属性和静态块
注意:如果在代码中,String name= Person.class.getName();这样调用的话,不会执行Person类的任何东西,一个类的static块,无乱创建多少个对象或者多次直接调用静态属性,只会执行一次。