Java 单例模式(个人理解)

单例模式
单例模式是Java中的一种设计模式。这种模式提供了一种创建对象的方式。以往的创建对象的方式。是通过其他类去实例化这个对象,也就是new这个对象。

那么问题来了,假如有多个类都要使用这个对象,那么这个对象就会被多次实例化,多次创建,多次销毁。这样无疑给内存以及JVM(Java虚拟机)增加了负担。单例模式解决了这个问题。单例模式的类是自己管理类的创建。

简单介绍一下Java中类的实例化
1.通过new语句创建对象。
2.是通过反射
3.调用对象的clone()方法
一个类的创建以及实例化。最先走的是其的构造方法。构造方法对这个类进行创建以及初始化。假如这个类没有构造方法。那么JVM会自动创建一个无参的构造方法。

话不多说上代码:

  • 单例模式
/**
 * 懒汉式,线程安全的单例模式
 */
public class Single {
    private static Single single = new Single();

    private Single() {
        System.out.println("我是单例模式的构造方法");
    }

    public static synchronized Single getInstance() {
        if (single == null) {
            single = new Single();
        }
        return single;
    }

    public void showMessage() {
        System.out.println("Hello World");
    }
}
  • 正常模式
/**
 * 正常的类
 */
public class People {

    private Single name;

    public People() {
        System.out.println("我是People的构造方法");
    }

    public void showMessage() {
        System.out.println("Hello World");
    }
}

重点来了…

public class TestMain {
    public static void main(String[] args) {

        People people = new People();
        People people1 = new People();
        people.showMessage();
        people1.showMessage();

        Single single = Single.getInstance();
        Single single1 = Single.getInstance();
        single1.showMessage();
        single.showMessage();
    }
}
  • 输出结果

    很明显在没有使用单例模式的类中俩次实例化people类。系统分别创建了2个不同的对象。
    而使用了单例模式的类中虽然实例化了2次。但是类只创建了一次。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值