单例模式

来源:互联网 发布:淘宝客上货软件 编辑:程序博客网 时间:2024/04/30 20:10
package com.text;/** * 单例模式(饿汉模式效率上较懒汉模式高,而且线程是安全的,但是内存消耗会多一些)在硬件允许下,建议使用饿汉模式 * <p> * 1)饿汉模式 * <p> * 2)懒汉模式 *  */public class Singleton {public static void main(String[] args) {Singleton1 sin11 = Singleton1.getInstance();Singleton1 sin12 = Singleton1.getInstance();System.out.println("是否为单例模式: " + sin11.equals(sin12));Singleton2 sin21 = Singleton2.getInstance();Singleton2 sin22 = Singleton2.getInstance();System.out.println("是否为单例模式: " + sin21.equals(sin22));}}// 1)饿汉模式class Singleton1 {private static Singleton1 singleton1 = new Singleton1();private Singleton1() {}public static Singleton1 getInstance() {// 静态方法只能访问静态变量return singleton1;}}// 2)懒汉模式class Singleton2 {private static Singleton2 singleton2 = null;private Singleton2() {}// 通过同步实现线程安全public static Singleton2 getInstance() {if (singleton2 == null) {//同步代码块synchronized (Singleton2.class) {if (singleton2 == null)singleton2 = new Singleton2();}}return singleton2;}}

0 0