登录
原创

Java单例模式(1)

专栏Java单例
发布于 2020-10-30 阅读 489
  • Java
原创

本文介绍单例模式的第一种策略

这是最为易于理解和使用的单例模式。

它的策略是,在类的内部定义一个静态的变量,并且在定义的时候就已经完成了初始化,这是因为jvm保证了一个类只会被加载到内存一次。这个变量的初始化的时机是在类被加载的时候,静态变量也被分配内存,并且完成了初始化。

同时,它的构造方法被定义为私有方法,因此获取实例只能通过类调用静态方法public static Student01 getInstance(),来返回已经初始化的实例。

  • 优点
    • 使用简单,编码方便
    • 易于理解,即使是刚入门的Java程序员也能够轻易读懂下面的代码
  • 缺点
    • 属于饱汉式模式,即使没有任何一个线程需要使用这个实例,那么它也会一直存在于内存中,占用内存(除非对于内存的要求极为苛刻,否则,这种内存的影响微乎其微,可忽略)。

代码部分

package singleton;

/**
 * 类加载到内存之后,就实例化一个对象,jvm保证线程安全,因为一个jvm只会加载一次类信息
 * 简单实用,推荐实用
 * 唯一缺点,不论用到与否,都会实例化一个对象出来
 */
public class Student01 {
    public final static Student01 student = new Student01();

    private Student01() {
    }


    public static Student01 getInstance() {
        return student;
    }

    public static void main(String[] args) {
        Student01 instance = Student01.getInstance();
        Student01 instance1 = Student01.getInstance();
        System.out.println(instance==instance1);
    }
}

评论区

眉上的汗水,眉下的泪水,你总要选择一样

0

0

0

举报