FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

GitHub Viewer

package designPattern.SingletonMode; /** * 单例模式 * * 问题:单例模式因为也是一个类,因此类加载器也可以同时产生它的实例,因此,要避免有同一个类的多个类加载器 * @data2021/9/13,19:06 * @authorsutinghu */ public class Singleton { /** * volatile 保护多线程下不出现问题 * 为什么不直接在类加载时创建实例?这样直接避免了类的多线程问题 * 因为类被创建后,如果没有被引用,会被垃圾回收 * 所以从性能和空间以及垃圾回收的角度 都应该在需要使用的时候才被创建 */ private static volatile Singleton uniqueIntance; /** * 私有化构造器类 被写在Java手册中 * 其作用在使使用单例的类能够通过外部请求的方式创建 而不是外部直接创建 */ private Singleton(){} /** * 多线程下获取单例模式,避免单一类被频繁调用时,出现混乱 * @return */ public static synchronized Singleton getInstance(){ if (uniqueIntance == null){ uniqueIntance = new Singleton(); } return uniqueIntance; } }

Back | FazBrowse Home | New Git URL