# singleton **Repository Path**: strayMalone/singleton ## Basic Information - **Project Name**: singleton - **Description**: 什么是Singleton? Singleton:在Java中即指单例设计模式,它是软件开发中最常用的设计模式之一。 单:指唯一 例:指实例 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。 要点: 一、单例类只能有一个实例 保证构造器私有化(防止通过构造器实例化) 二、单例类必须自信创建这个实例 在单例类中创建一个静态变量来保存这个唯一的实例 三、单例类必须自行向整个系统提供这个实例 对外提供该实例对象的获取方式 直接暴露该实例对象 用静态变量的get方法获取该实例对象 单例的几种常见形式 饿汉式:直接创建对象,不存在线程安全问题 直接实例化饿汉式(简介直观) 枚举式(最简洁) 静态代码块饿汉式(适合复杂实例化) 懒汉式:延迟创建对象 线程不安全(适用于单线程) 线程安全(适用于多线程) 静态内部类形式(适用于多线程 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-04 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 什么是Singleton? Singleton:在Java中即指单例设计模式,它是软件开发中最常用的设计模式之一。 单:指唯一 例:指实例 单例设计模式,即某个类在整个系统中只能有一个实例对象可被获取和使用的代码模式。 要点: 一、单例类只能有一个实例 保证构造器私有化(防止通过构造器实例化) 二、单例类必须自信创建这个实例 在单例类中创建一个静态变量来保存这个唯一的实例 三、单例类必须自行向整个系统提供这个实例 对外提供该实例对象的获取方式 直接暴露该实例对象 用静态变量的get方法获取该实例对象 单例的几种常见形式 饿汉式:直接创建对象,不存在线程安全问题 直接实例化饿汉式(简介直观) 枚举式(最简洁) 静态代码块饿汉式(适合复杂实例化) 懒汉式:延迟创建对象 线程不安全(适用于单线程) 线程安全(适用于多线程) 静态内部类形式(适用于多线程