加载,表示启动程序的文件或信息的载入
java中类的字节码文件加载进内存,就是内容以io流的形式存入内存。
User user=new User(“男”,26);
该语句做了几件事:
因为new用到了User.class,所以找到User.class文件并加载到内存中
执行该类的static代码块,如果有的话,给User.class类进行初始化
在堆内存中开辟空间,分配内存地址。
在堆内存中建立对象的特有属性,并进行默认初始化。
对属性进行显式初始化
对对象进行构造代码块初始化
对对象进行对应的构造函数初始化
将内存地址赋给栈内存中的p变量
特别注意,步骤7和步骤8,先后发生顺序是随机的
懒加载
饿汉式单例
public class Singleton
{
private static Singleton instance = new Singleton();
private Singleton(){
…
}
public static Singleton getInstance(){
return instance;
}
}
1
2
3
4
5
6
7
8
9
10