}
懒汉式
package 单例设计模式;
//懒汉式
public class Singleton2 {
//1,将构造方法私有化,不允许外部直接创建对象。
private Singleton2(){
}
//2,声明类的唯一实例,使用private static修饰。
private static Singleton2 instance;
//3,提供一个用于获取实例的方法,使用public static修饰。
public static Singleton2 getInstance(){
if(instance==null){
instance=new Singleton2();
}
return instance;
}
}
饿汉式和懒汉式的区别
所谓“懒汉式”与“饿汉式”的区别,是在与建立单例对象的时间不同。
懒汉式:是在你真正用到的时候才去建这个单例对象:(用时才创建)
饿汉式:是在不管你用的用不上,一开始就建立这个单例对象 (用不用都先创建)
一:区别
饿汉式:
1,特点:饿汉式加载类时比较慢,但运行时获取对象的速度比较快。
在类创建的同时就已经创建好一个静态的对象供系统使用,以后不再改变
2,线程安全:线程安全
懒汉式
1,特点:懒汉式加载类时比较快,但运行时获取对象的速度比较慢
2,线程安全:线程不安全。
二:优缺点对比
懒汉式
优点是延时加载实例(对象)、 是在需要的时候才创建对象。缺点是应该用同步。
如果在创建实例对象时不加上synchronized则会导致对对象的访问不是线程安全的。
饿汉式
饿汉式是线程安全的,在类创建的同时就已经创建好一个静态的对象供系统使用,以后不在改变
推荐使用饿汉式
# 写在最后
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后再分享的一些BATJ等大厂20、21年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。
![蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌](https://img-blog.csdnimg.cn/img_convert/9977153728efb091d5354fbe3b1d92df.webp?x-oss-process=image/format,png)
Mybatis面试专题
![蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌](https://img-blog.csdnimg.cn/img_convert/2b86bd3dc1a506dd25153ea3dfeab38e.webp?x-oss-process=image/format,png)
MySQL面试专题
![蚂蚁金服三面直击面试官的Redis三连,Redis面试复习大纲在手,不慌](https://img-blog.csdnimg.cn/img_convert/d9dacdce3d96be8db5c3fd9bbfb271f3.webp?x-oss-process=image/format,png)
并发编程面试专题
29054577)]
Mybatis面试专题
[外链图片转存中...(img-chMoCmqi-1714129054578)]
MySQL面试专题
[外链图片转存中...(img-hnfU9g9k-1714129054578)]
并发编程面试专题
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/topics/618154847)收录**