我先给你分析一下我写的程序,然后再看你的。你可能就会明白了最后的执行顺序是这样的* 代码块的执行顺序
* 1.Day08_1的静态代码块执行了
2.main函数执行了
3.Student的静态代码块执行了
4.构造代码块执行了
5.构造函数执行了
6.构造代码块执行了
分析:当JVM要想执行一个程序时,1.首先要找main方法,于是Day_8类就加载到了内存,静态代码块是一个类加载到内存时执行的,也就是类初始化的。所以1.Day08_1的静态代码块执行了第一个执行;2.接着main方法执行,于是2.main函数执行了执行了;3.接着new Student()时,Student类加载到了内存,所以3.Student的静态代码块执行了(并且只执行一次);4,接着new Sutdent()时,{}括起来的是对象初始化代码块,里面都是所有对象共有的内容,先于构造函数执行,所以构造代码块执行了,(并且每次调构造函数都会执行);5.构造函数执行了;6.构造代码块执行了
|