类的初始化:是完成程序执行前的准备工作。在这个阶段,静态的(变量,方法,代码块)会被执行。同时在会开辟一块存储空间用来存放静态的数据。初始化只在类加载的时候执行一次。
类的实例化:是指创建一个对象的过程。这个过程中会在堆中开辟内存,将一些非静态的方法,变量存放在里面。在程序执行的过程中,可以创建多个对象,既多次实例化。每次实例化都会开辟一块新的内存。
对象的初始化:对象的初始化是在类实例化后产生了对象、此时这个对象还不能完全能给外部调用,处在一个"中间态"。像Spring经常就有对Bean实例化后的初始化操作,比如处理带有@Autowired属性的变量、调用init方法等
//最先执行的是静态方法的代码
static{
1
}
//依次是静态代码块
{
2
}
//1和2都是在类的初始化阶段完成
//然后是构造方法
构造方法{
3
}
//3属于类的实例化
//最后是初始化方法,这个初始化不是文中说的类的初始化,这个初始化是指对象的初始化
inin{
4
}
//4属于对象的初始化