Java-Singleton(单例创建-饿汉式,懒汉式)

package com.easygo.singleton;
/**
 * Java单例有两种方式,饿汉式和懒汉式,饿汉式是在对象创建之前加载,优先于对象,而懒汉式是在对象创建完成后调用对象的方法来创建对象
 * ,了解JVM加载原理的都清楚,正真意义上的单例是饿汉式,在对象创建之前加载。
 * @author lx
 *
 */
public class Singleton {
//饿汉式
    public static Singleton singleton=null;
    static {
        singleton=new Singleton();

    }

    //懒汉式
    public static Singleton getsingleton() {
        if(null==singleton) {
            singleton=new Singleton();
            return singleton;

        }else {
            return singleton;
        }

    }
}

原文地址:https://www.cnblogs.com/mature1021/p/9568607.html

时间: 2024-07-29 23:45:38

Java-Singleton(单例创建-饿汉式,懒汉式)的相关文章

单例模式(懒汉式单例、饿汉式单例、登记式单例)

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建.这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象. 注意: 1.单例类只能有一个实例. 2.单例类必须自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 介绍 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点.

关于单例(饿汉式与懒汉式)

饿汉式单例: 1 package com.mon11.day27.single; 2 /** 3 * 类说明 : 4 * @author 作者 :chenyanlong 5 * @version 创建时间:2017年11月27日 6 */ 7 public class SingleTon { 8 // 饿汉式 线程全 9 private static SingleTon singleTon=new SingleTon(); 10 /*1.构造方法私有化*/ 11 private SingleTo

设计模式课程 设计模式精讲 8-5 单例设计模式-饿汉式

1 代码讲解 1.1 饿汉式不会出现多线程问题 1.2 优点和缺点 2 代码演练 2.1 代码演练1(饿汉式) 2.2 代码演练2(静态块方式实现) 1 代码讲解 1.1 饿汉式不会出现多线程问题 刚开始加载的时候就完成了初始化,避免了线程同步问题, 1.2 优点和缺点 优点:刚开始加载的时候就完成了初始化,避免了线程同步问题. 缺点:如果该类不经常使用,比较消耗资源,造成内存浪费. 2 代码演练 2.1 代码演练1(饿汉式) package com.geely.design.pattern.c

4创建型模式之单例模式__多线程下的懒汉式单例和饿汉式单例

//1"懒汉"模式虽然有优点,但是每次调用GetInstance()静态方法时,必须判断 //      NULL == m_instance,使程序相对开销增大. //2多线程中会导致多个实例的产生,从而导致运行代码不正确以及内存的泄露. //3提供释放资源的函数 讨论:   这是因为C++中构造函数并不是线程安全的. C++中的构造函数简单来说分两步: 第一步:内存分配 第二步:初始化成员变量 由于多线程的关系,可能当我们在分配内存好了以后,还没来得急初始化成员变量,就进行线程切换

java单例,懒汉&饿汉

 * 单例模式Singleton  * 应用场合:有些对象只需要一个就足够了,如皇帝  * 作用: 保证整个应用程序中某个实例有且只有一个  * 区别: 饿汉模式的特点是加载类时比较慢,但运行是比较快-线程安全           懒汉模式的特点是加载类时比较快,但运行时比较慢-线程不安全 1.饿汉 1 //饿汉式单例类.在类初始化时,已经自行实例化 2 public class Singleton1 { 3 //私有的默认构造子 4 private Singleton1() {} 5 //已经

详谈单例、饿汉、和懒汉模式

一.基本概念 单例模式属于创建型设计模式. 确保一个类只有一个实例,并提供该实例的全局访问点. 实现: 使用一个私有构造函数.一个私有静态变量以及一个公有静态函数来实现. 二.结构 类图: 私有构造函数保证了不能通过构造函数来创建对象实例,只能通过公有静态函数返回唯一的私有静态变量. 三.几类经典单例模式实现 1.懒汉式-线程不安全 下面的实现中,私有静态变量 uniqueInstance 被延迟实例化,这样做的好处是,如果没有用到该类,那么就不会实例化 uniqueInstance,从而节约资

黑马程序员-Java基础-面向对象-类和对象、封装、构造函数、this、static、饿汉式&懒汉式

第一讲  面向对象概念 1.  定义 相对于与面向过程而言的,将功能封装进对象,我们只关心具备了该功能的对象,而不用关注对象的具体细节. 面向对象的特点:使复杂问题简单化.我们只关心什么对象能处理什么事情,而不用关心具体的实现细节. 2.  面向对象特征 封装.继承.多态. 第二讲  类和对象的关系 1.  概述 类就是:对现实生活中事物的描述,可以是实体的事物也可以是一件事等: 对象是:是某类事物的实例,实实在在存在的个体: 映射到java中,描述就是class定义的类. 具体对象就是对应ja

java学习之单例模式(饿汉式与懒汉式)

---恢复内容开始--- 设计模式:解决某一类问题最行之有效的方法 java中有23种设计模式 今天学习其中一种:单例设计模式:解决一个类在内存只存在一个对象 想要保证对象唯一. 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三部分用代码体现: 1.将构造函数私有化 2.在类中创建一个本类对象 3.提供一个方法可以获取到该对象 packag

Java单例模式《一》饿汉式

package com.study.mode; /** * 单例模式:饿汉式. 线程安全. * @ClassName: SingleBean * @author BlueLake * @date 2012年9月5日 下午8:45:10 */ public class SingleBean { //1.私有化构造方法 private SingleBean(){ } //2.创建当前对象的静态实例. private static SingleBean single= new SingleBean()