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

简介: 库调多了,都忘了最基础的概念-《单例模式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:服务器错误。

🍚总结

以上是关于单例模式和状态码的简单总结,希望有所帮助。

相关文章
|
6月前
|
程序员 Python
类的设计奥秘:从代码到架构的科普全解
类的设计奥秘:从代码到架构的科普全解
95 2
|
6月前
|
缓存 前端开发 安全
究竟何为GET,何为POST?前端程序员的必修课
究竟何为GET,何为POST?前端程序员的必修课
88 0
|
6月前
|
设计模式 Java 开发者
一目了然!谁能想到Java多线程设计模式竟然被图解,看完不服不行
多线程设计模式在Java编程中起着至关重要的作用,它能够有效提高程序的执行效率,使得程序在处理大量数据和复杂任务时更加高效。然而,对于初学者来说,理解和应用多线程设计模式可能是一项相当具有挑战性的任务。为了让读者更加轻松地掌握这一复杂主题,我们带着一种全新的图解方式,深入剖析Java多线程设计模式的精髓。
|
设计模式 网络协议 Java
经典永不过时!重温设计模式
在软工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。这个术语是由埃里希·伽玛(Erich Gamma)等人在1990年代从建筑设计领域引入到计算机科学的,设计模式是针对软件设计中常见问题的工具箱,其中的工具就是各种经过实践验证的解决方案。即使你从未遇到过这些问题,了解模式仍然非常件有用,因为它能指导你如何使用面向对象的设计原则来解决各种问题。
192 1
经典永不过时!重温设计模式
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
79 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
|
安全 编译器 网络安全
一些碎碎念以及类和对象零碎知识点补充
一些碎碎念以及类和对象零碎知识点补充
104 0
一些碎碎念以及类和对象零碎知识点补充
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
93 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
107 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
|
数据采集 算法 Java
库调多了,都忘了最基础的概念-《线程池篇》
库调多了,都忘了最基础的概念-《线程池篇》
128 0
库调多了,都忘了最基础的概念-《线程池篇》
|
存储 数据采集 算法
库调多了,都忘了最基础的概念-方法篇
库调多了,都忘了最基础的概念-方法篇
150 0
库调多了,都忘了最基础的概念-方法篇