铜仁建设公司网站,百度广告电话号码是多少,wordpress 资源站点,网页设计提升班单例模式
1.单例模式含义
单例模式就是保证一个类仅有一个实例#xff0c;并提供一个访问它的全局访问点。
其实单例模式很好理解#xff0c;当我们new一个对象实例的时候#xff0c;这个对象会被放到一个内存中#xff0c;当我们再次new同一个对象的实例的时候#xf…单例模式
1.单例模式含义
单例模式就是保证一个类仅有一个实例并提供一个访问它的全局访问点。
其实单例模式很好理解当我们new一个对象实例的时候这个对象会被放到一个内存中当我们再次new同一个对象的实例的时候此时系统就又会为我们新创建的这个对象分配一个新的内存。这就是普通的对象创建方式单例模式呢就是无论我们创建多少次对象所有的创建出来的对象都指向同一个内存都是同一个对象。
2.代码示例
2.1Singleton类
Singleton类是目标类就是我们要new的对象
public class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance(){if (instance null) {instance new Singleton();}return instance;}
}2.2测试类
public class MainApp {public static void main(String[] args) {Singleton instance1 Singleton.getInstance();Singleton instance2 Singleton.getInstance();System.out.println(instance1的内存地址 instance1);System.out.println(instance2的内存地址 instance2);}
}运行结果 instance1的内存地址com.dalei.singleton.Singleton1b6d3586 instance2的内存地址com.dalei.singleton.Singleton1b6d3586 从运行结果可以看到虽然我们创建了两个Singleton对象的实例但是这两个实例所指向的内存地址是一模一样的也就是说这两个实例是相等的是同一个。
3.总结
单例模式的目的就是为了让一个类自始至终都仅保持唯一的一个实例。这个类可以保证没有其他实例可以被创建并且它可以提供一个访问该实例的方法。
单例模式有两种初始化方式一种饿汉式一种懒汉式 饿汉式就是在类被加载的时候就将自己实例化出来 饿汉式使用会提前占用系统资源但是不会出现多线程问题因为线程工作前这个单例对象已经被创建好了。 懒汉式就是在第一次引用这个类的时候才将自己实例化 懒汉式使用不会提前占用系统资源但是会出现多线程问题要做好线程并发控制否则对象就会创建多个出来。
这两种实例化的方式区别就是加载时机不同。
综上单例模式是为了让我们在任何时候任何地方引用到的都是同一个对象如果想要实现这个效果那单例模式就是很好的解决方法。不过使用单例模式的时候要注意避免多线程并发问题解决多线程并发的方法很多种加锁使用枚举等等此处不做深入讨论。