-
单例设计模式:保证类在内存中只有一个对象。
-
如何保证类在内存中只有一个对象呢?
-
(1)控制类的创建,不让其他类来创建本类的对象。private
-
(2)在本类中定义一个本类的对象 。Singleton s;
-
-
(3)提供公共的访问方式。 public static Singleton getInstance(){return s}
package com.heima.thread; public class Demo4_Thread { /** * @param args */ public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); } } //懒汉式单例设计模式 //class Singleton { // // //1.私有构造方法 // // private Singleton(){}; // // //2.申明一个引用,不过要将这个什么方法私有了。 // // private static Singleton s ; // // //3.对外提供公共的访问方法 // // public static Singleton getInstance(){ // // if (s == null){ //在这里容易产生多线程问题,容容易创建多个对象 //多次判断也会增加时间,不利于效率。 // // s = new Singleton(); // // } // return s ; // } //} //懒汉式单例设计模型 (开发用这种) class Singleton{ //1.私有构造方法 private Singleton(){}; //2.创造本类对象 public static Singleton s = new Singleton(); //3.对外提供公共的访问方法 public static Singleton getInstance() { return s; } }
懒汉式和饿汉式的区别:
-
饿汉式是空间换时间,懒汉式是时间换空间
-
在多线程访问时,饿汉式不会创建多个对象,而懒汉式有可能会创建多个对象。
java -------饿汉式/懒汉式 单例构造
最新推荐文章于 2024-07-24 15:19:30 发布