写点什么

库调多了,都忘了最基础的概念 -《单例模式 VS 状态码》

作者:知识浅谈
  • 2022 年 9 月 12 日
    吉林
  • 本文字数:1033 字

    阅读完需:约 3 分钟

库调多了,都忘了最基础的概念-《单例模式VS状态码》

🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家

📌 擅长领域:全栈工程师、爬虫、ACM 算法

💒 公众号:知识浅谈

🔥 联系方式 vx:zsqtcc


🤞拿下,拿下🤞


温馨提醒:该说不说,这个真的有用

🎈单例模式有几种写法?

先说单例模式有两种方法,一种是饿汉式,一种是懒汉式。

饿汉式:在类初始化的时候就已经创建了,在声明变量的时候直接创建值并赋值了。

懒汉式:在需要的时候才进行对象的创建,懒汉式的实现方法有两种,一种是双重检查的方式,一种是静态内部类的方式(因为静态内部类只有在第一访问的时候才初始化)。

饿汉式🌰


public class Main {    private static Main main1 = new Main();    private Main(){}    public static Main getMain1(){        return main1;    }}
复制代码


懒汉式-双重检查🌰


public class Main {    private static volatile Main main1;    private Main(){}    public static Main getMain1(){        if(main1==null){            synchronized (Main.class){                if(main1==null){                    main1 = new Main();                }            }        }        return main1;    }}
复制代码


懒汉式-静态内部类方法🌰


public class Main {    private static volatile Main main1;    private Main(){}    private static class A{        private static Main main1 = new Main();    }    public static Main getMain1(){       return A.main1;    }}
复制代码

🎈为什么单例一定要加 volatile?

主要是用到 volatile 的两个特性,分别是可见性和有序性。可见性:因为在不同的线程中有主存中的变量的副本,当某个线程变了之后要让其他线程中也感受到。因为单例对象就是这样的,当单例对象创建后,要让其他线程中能知道 volatile 修饰的单例对象的变化,这就是用到的 volatile 的可见性。防止指令重排序:在船舰对象的是后在底层不是一步完成的,创建对象之后把对象的地址赋值给单例对象的变量,这是单例对象使用 volatile 的第二个原因。

🎈常见的 HTTP 状态码有哪些?

10x:表示临时响应并需要请求者继续执行操作的状态代码,100: 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分,常用于传输大型文件的是时候。20x:返回成功的状态,200:表示 i 请求成功。30x: 表示重定向的状态,301:永久重定向,302:临时重定向 40x: 表示请求错误,如 404:页面不存在 50x:表示服务器错误,如 502:错误网关,503:服务器错误。

🍚总结

以上是关于

发布于: 刚刚阅读数: 4
用户头像

知识浅谈

关注

公众号:知识浅谈 2022.06.22 加入

🍁 作者:知识浅谈,InfoQ签约作者,CSDN博客专家/签约讲师,华为云云享专家,阿里云签约博主 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥 联系方式vx:zsqtcc

评论

发布
暂无评论
库调多了,都忘了最基础的概念-《单例模式VS状态码》_volatile_知识浅谈_InfoQ写作社区