- 构造函数(被动):随着对象的创建而执行。
- 作用:给特定的类进行初始化。
- 构造代码块(被动):对象一建立就执行,无论放在构造函数前或后,都先于构造函数执行!
- 作用:给类的所有对象进行统一初始化。
- 静态代码块(被动):随着类的加载而执行,只执行一次。并优先于主函数执行!
- 所用:给类进行初始化。
- 主函数(被动):程序入口。
- 静态成员(主动):随着类的加载而加载,然后存在于方法区中,随着类的消失而消失。生命周期最长。静态函数被调用才执行。
- 对象的初始化过程?
- Person p=new Person("wzq",22);做了哪些事情
- 1,因为new用到了Person.class,所以会先找到该文件,并将其加载到内存中。
- 2,执行该Person类中的static代码块,给Persion.class进行初始化
- 3,在堆内存中开辟空间,分配内存地址。(栈内存中为p开辟空间)
- 4,在堆内存中建立对象的特有属性(成员变量),并进行默认初始化-->private int age=0;
- 5,对属性进行显式初始化-->private String name = ren;
- 6,对对象进行构造代码块初始化;
- 7,对对象进行对应的构造函数初始化-->"wzq",22 初始化对象name=wzq,age=22;
- 8,将堆内存地址赋给栈内存中的p变量
复制代码 |