为什么在静态方法(main方法)中创建本类的对象可以先调用本类中的构造器(这里是系统默认无参构造器),不应该是先等该静态方法(main方法)随着类的加载完后,再在这个类中加载出 这个在该静态方法(main方法)中创建对象的对应构造器,再才可以创建对象?怎么就创建对象调用构造器在加载静态结构之前了呢?
先拿图一图二举例说明一下我自己的理解思路:


图一:我们知道静态结构是随着类的加载而加载的,所以Student类中的静态属性age和静态方法read()都是随着Student类的加载而加载的;加载完Student类中的静态结构此时再加载构造器,这个时候构造器才加载出来.
图二:再看StudentTest类,此时StudentTest类中的main()方法也是静态方法,故也随着StudentTest类的加载而加载,当加载main()方法中到创建Student类的对象s这一步,此时是调用Student类中已经是在加载好静态结构之后的构造器(系统系统默认的无参构造器),故可创建对象s,并进行在main()方法【注:也是静态方法】中去调用Student类中的静态属性和静态方法。【注:也可调用Student类中的非静态结构,这里我没有具体写出来举例】。
接下来再看图三,也就是我的问题:

问:根据上面图一图二的举例的我的思路理解,我们继续看看这张图三代码图:
同样,知道静态结构是随着类的加载而加载的,故这里main()方法也是随着App类的加载而加载,只不过当也加载到创建App类对象a时,它需要调用App类本类中的构造器,问题就出来了:上面图二是在图一已经加载完静态结构后,再调用图一类中的构造器去创建对象;这里图三是在本类App类的main()方法中创建对象,先去调用图三本类App类中的构造器,可是此时main方法是静态方法,应该是随着类的加载而加载的,并且加载完后静态结构才加载构造器,才可以调用构造器,才再可以创建对象,但这里直接在main()方法静态方法中就去调用构造器了,未等静态结构(main()方法)加载完,【与先加载静态结构后加载构造器,才可以调用构造器再创建对象这一道理相矛盾】怎么就跑到加载静态结构之前 加载构造器了,就可以创建对象了,岂不是矛盾?
我也不知道我自己说的够不够清楚,请仔细观看反复查看,错了地方也请指正!所以上面所述就是我困惑的点,虽然在软件idea中可以那样编译运行,都不会报错,但我就是有点矛盾,想不通,望大伙厉害的人 详细仔细耐心慢慢说明,真的感谢!

