单例模式 谁借莪1个温暖的怀抱¢ 2021-10-01 07:48 316阅读 0赞 单例模式有以下特征: 1. 只有一个对象存在 2. 对象的实例化必须在类中实现 一、懒汉模式(线程不安全) package com.kevin; // 懒汉模式 调用静态方法的时候实例化 public class Singleton1 { private String name = "lazy"; private Singleton1() { } private static Singleton1 single = null; //静态工厂方法 public static Singleton1 getInstance() { if (single == null) { single = new Singleton1(); } return single; } // 线程安全 /*public static synchronized Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; }*/ // 双重检查锁定 /*public static Singleton getInstance() { if (singleton == null) { synchronized (Singleton.class) { if (singleton == null) { singleton = new Singleton(); } } } return singleton; }*/ public String getName() { return name; } public void setName(String name) { this.name = name; } public void printInfo() { System.out.println("the name is " + name); } } 二、饿汉模式(线程安全,在类加载的时候完成实例化操作) package com.kevin; // 饿汉模式 类加载的时候实例化 public class Singleton2 { private Singleton2() { } private static final Singleton2 single = new Singleton2(); //静态工厂方法 public static Singleton2 getInstance() { return single; } } 三、测试类 package com.kevin; import java.io.Serializable; // test singleton function // 饿汉式天生就是线程安全的,可以直接用于多线程而不会出现问题, // 懒汉式本身是非线程安全的 // 单例模式特点 // 只有一个实例存在 public class MainTest implements Serializable { public static void main(String[] args) { test2(); } private static void test1() { Singleton1 s1 = Singleton1.getInstance(); s1.setName("22222"); s1.printInfo();; Singleton1 s2 = Singleton1.getInstance(); // 输出name的值,是s1的name的值 s2.printInfo(); s2.setName("33333"); // 设置s2的name的值,s1的name值已经变化 s1.printInfo(); } private static void test2() { Singleton1 s1 = Singleton1.getInstance(); s1.setName("aaaa"); Singleton1 s2 = Singleton1.getInstance(); s2.setName("bbbbb"); System.out.println(s1 == s2); } } 转载于:https://www.cnblogs.com/Kevin00/p/7868086.html
相关 单例模式 http://blog.csdn.net/zhengzhb/article/details/7331369 定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实 曾经终败给现在/ 2022年09月25日 15:30/ 0 赞/ 240 阅读
相关 单例模式 class sigle{ protected static $ins = null; public function getIns(){ 深藏阁楼爱情的钟/ 2022年07月20日 20:27/ 0 赞/ 261 阅读
相关 单例模式 简介: 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在 ﹏ヽ暗。殇╰゛Y/ 2022年05月09日 15:46/ 0 赞/ 155 阅读
相关 单例模式 <table> <tbody> <tr> <td style="vertical-align:top;width:.6868in;"> <p style 矫情吗;*/ 2021年11月22日 10:52/ 0 赞/ 293 阅读
相关 单例模式 单例模式 单例模式(SingletonPattern)是java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及 红太狼/ 2021年11月16日 05:30/ 0 赞/ 311 阅读
相关 单例模式 1、懒汉式,线程不安全 是否 Lazy 初始化:是 是否多线程安全:否 实现难度:易 描述:这种方式是最基本的实现方式,这种实现最大的问题就是不支持多线程。因为没有 以你之姓@/ 2021年11月11日 17:44/ 0 赞/ 274 阅读
相关 单例模式 应用场景 1. windows的任务管理器 2. 网站的计数器 3. 应用程序的日志 4. 数据库连接池,因为数据库连接是一种数据库资源。数据库软件系统中使用数据 r囧r小猫/ 2021年11月11日 15:08/ 0 赞/ 354 阅读
相关 单例模式 单例模式有以下特征: 1. 只有一个对象存在 2. 对象的实例化必须在类中实现 一、懒汉模式(线程不安全) package com.kevin; 谁借莪1个温暖的怀抱¢/ 2021年10月01日 07:48/ 0 赞/ 317 阅读
相关 单例模式 1.定义 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。 2.实现步骤 1. 将该类的构造方法定义为私有方法,这样其他处 小咪咪/ 2021年09月27日 13:56/ 0 赞/ 400 阅读
相关 单例模式 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责 Dear 丶/ 2021年09月17日 02:10/ 0 赞/ 328 阅读
还没有评论,来说两句吧...