单例模式
模式是脱离语言的。
问题的由来:
为什么?
多个线程操作不同实例对象。多个线程要操作同一对象,要保证对象的唯一性
解决的问题:
实例化过程中只实例化一次
解决的思路
有一个实例化的过程(只有一次),产生实例化对象 new
提供返回实例对象的方法 getInstace()
单例模式的分类
线程的安全性、性能、懒加载(lazy )
饿汉式
public class HungerySingleton { //加载的时候就产生的实例对象 private static HungerySingleton instance=new HungerySingleton(); private HungerySingleton(){ } //返回实例对象 public static HungerySingleton getInstance(){ return instance; } public static void main(String[] args) { for (int i = 0; i < 20; i++) { new Thread(()->{ System.out.println(HungerySingleton.getInstance());