1. jvm将.java文件加载到方法区,同时类中的的静态成员加载到方法区附默认值 然后根据在文件中顺序赋初值 静态代码块执行
方法加载到方法区 如果有的静态成员调用方法会执行 main不一定是第一步执行
2. jvm找到程序入口 主方法main()开始执行 main进入栈内存
3. 创建对象 在堆内存中开辟空间 地址值赋值给引用变量 引用变量是存储在栈内存中保存对象的地址值
4. 调用构造方法 构造方法先执行隐藏的代码在执行方法体
5. 隐藏的代码分为三步 1> super()调用父类构造函数可以有参数
2> 非静态成员变量赋值
3> 执行构造代码块 也就是在成员位置的非静态代码块 2和3按照在类中的顺序执行
6. 然后调用对象的成员 方法按照顺序进行 。
7. 最后main执行完 出栈 程序结速