饿汉式单例模式
一回家就开始吃馒头(随着类的加载一进来就造对象)
private static Student s = new Student();
这是饿汉式单例模式(点击查看)
懒汉式单例模式
用的时候才创建对象
public static Teacher getTeacher(){
if(t==null){
t = new Teacher();
}
return t;
}
这是懒汉式单例模式(点击查看)
面试题
*单例模式的思想是什么?请写一个代码体现。
- 开发:饿汉式(这种模式是不会出现问题的)
- 面试:懒汉式(可能会出现问题的单例模式面试会问到)
A:懒加载(延迟问题)
B:线程安全问题
a.是否是多线程环境
b.是否有共享数据
c.是否有多条语句操作共享数据
以上都符合。所以写代码时要对线程安全进行处理。同步synchronized关键字。
代码如图,点击查看单例模式代码体现
JDK中的Runtime类用的饿汉式
代码如图,点击查看