我们的java代码是运行在JVM中,实例化对象的操作,发生在堆栈中。
实例化对象的步骤:
- 在栈中开辟一块内存空间,用来存储空对象
- 在堆中开辟一块内存空间,用来实例化对象
- 通过指针,连接堆栈之间的内存空间
饿汉式的单例模式,主要就是通过static实现。 (浪费内存空间)
懒汉式 (效率太低,挨个排队)
我们都知道,JVM运行代码是通过指令来运行的,例如实例化对象:
一、在栈中开辟一块内存空间,用来存储空对象
二、在堆中开辟一块内存空间,用来实例化对象
三、通过指针,连接堆栈之间的内存空间
- ==> ② ==> ③
但是在并发压力大的情况下,可能会变成
- ==> ③ ==> ②
一亻旦JVM对一个对象执行了 一 三 二,后续所有的当前对象都是这个顺序
使用volatile关键字强制排序



