1、饿汉式:类初始化时,会立即加载该对象,线程天生安全,调用效率高;
2、懒汉式:类初始化时,不会初始化该对象,真正需要使用的时候才会创建该对象,具备懒加载功能;
3、静态内部方式:结合了懒汉式和饿汉式各自的优点,真正需要对象的时候才会加载,加载类是线程安全的。
4、枚举单例:使用枚举实现单例模式优点:实现简单、调用效率高,枚举本身就是单例,由jvm从根本上提供保障!避免通过反射和反序列化的漏洞, 缺点没有延迟加载。
5、双重检测锁方式:因为JVM本质重排序的原因,可能会初始化多次,不推荐使用。
单例创建方式有哪些
2023-12-04
收藏 68
猜你喜欢
程序员知识
静态链表中如何删除指定元素
1、遍历数据链表,找到要删除的目标元素。 2、将要删除的节点从数据链表中摘除。 3、将要删除的节点添加到备用...
23-12-03 228程序员知识
静态链表添加元素的步骤是什么
1、从备用链表中摘除一个节点,用于存储新元素。 2、找到要插入位置的前一个节点(即第n-1个节点),将该节点的...
23-12-04 292程序员知识
静态链表存储数据元素时包含哪些信息
1、数据域:这是用于存储数据元素的值的部分。数据域的具体内容取决于具体的应用场景和需求,它可以是任何类型...
23-12-04 172程序员知识
随机存取结构和顺序存取结构有哪些区别
1、定义不同:随机存取 (Random Access)当存储器中的数据被读取或写入时,所需要的时间与该数据所在的物理地址无关...
23-12-04 323程序员知识
如何判断两个单链表相交
1、双指针法:首先计算两个链表的长度,让较长的链表先走差值步数,然后同时遍历两个链表,当遍历到相同的节点...
23-12-04 264程序员知识
如何实现单链表的反转
1、迭代反转链表:该算法的实现思想非常直接,就是从当前链表的首元节点开始,一直遍历至链表的最后一个节点,...
23-12-04 343程序员知识
链表中如何对元素增删改查
1、链表插入元素:向链表中增添元素,根据添加位置不同,可分为添加在头部、中间和末尾,虽然新元素的插入位置...
23-12-04 453程序员知识
链表中的节点有哪几种
1、头节点:其实就是一个不存任何数据的空节点,通常作为链表的第一个节点。对于链表来说,头节点不是必须的,...
23-12-04 375