1.饿汉式
package com.abc.beans; import java.io.Serializable; /* * 单例模式(饿汉式) * 1. 私有化构造方法 * 2. 初始化对象 * 优点:线程安全,调用效率高 * 缺点:不能延迟加载 * * * * */ public class Book implements Serializable { private static Book book = new Book(); private Book(){ } public static Book getInstance(){ return book; } }
2. 懒汉式
package com.abc.beans; import java.io.Serializable; /* * 单例模式(懒汉式) * 1. 私有化构造方法 * 2. 不初始化对象,用的时候在初始化 * 缺点:调用效率不高 * 优点:线程安全,可以延迟加载 * * * * */ public class Book implements Serializable { private static Book book; private Book(){ } public static synchronized Book getInstance(){ if(book == null){ book = new Book(); } return book; } }
3. 静态内部类实现单例模式
package com.abc.beans; import java.io.Serializable; /* * 单例模式(静态内部类) * 1.线程安全 * 2.调用效率高 * 3.延迟加载 * * * * */ public class Book implements Serializable { private static class BookInstanve{ private static final Book book = new Book(); } private Book(){ } public static Book getInstance(){ return BookInstanve.book; } }