• 单例模式


    懒加载,线程不安全 
    1. public class Singleton {
    2. private static Singleton instance;
    3. private Singleton(){}
    4. public static Singleton getInstance(){
    5. if(instance == null){
    6. instance = new Singleton();
    7. }
    8. return instance;
    9. }
    10. }
    懒加载,线程安全,线程方法排序
    1. public class Singleton {
    2. private static Singleton instance;
    3. private Singleton(){}
    4. public static synchronized Singleton getInstance(){
    5. if(instance == null){
    6. instance = new Singleton();
    7. }
    8. return instance;
    9. }
    10. }
    synchronized表示多线程排序执行方法。
    懒加载,线程安全,线程属性传递
    1. public class Singleton {
    2. private volatile static Singleton instance;
    3. private Singleton(){}
    4. public static Singleton getInstance(){
    5. if(instance == null){
    6. instance = new Singleton();
    7. }
    8. return instance;
    9. }
    10. }
    volatile表示变量修改最后的值。
    类加载,线程安全
    1. public class Singleton {
    2. private static Singleton instance = new Singleton();
    3. private Singleton(){}
    4. public static Singleton getInstance(){
    5. return instance;
    6. }
    7. }
    静态内部类加载,线程安全
    1. public class Singleton {
    2. private static class SingletonHolder{
    3. private static final Singleton INSTANCE = new Singleton();
    4. }
    5. private Singleton(){}
    6. public static Singleton getInstance(){
    7. return SingletonHolder.INSTANCE;
    8. }
    9. }
    枚举
    1. public enum Singleton {
    2. INSTANCE;
    3.    private Single(){}
    4. public void whateverMethod(){}
    5. }






  • 相关阅读:
    Springboot中使用Scala开发
    aliyun阿里云Maven仓库地址
    css文字滚动
    随笔
    下拉菜单事件
    微信分享
    微信分享功能
    随笔记
    全屏设置
    判定复选框的选中状态
  • 原文地址:https://www.cnblogs.com/RocketMan/p/6400139.html
Copyright © 2020-2023  润新知