android 的单例模式
来源:互联网 发布:linux同名文件夹 编辑:程序博客网 时间:2024/05/16 16:23
- public class Singleton {
- private static volatile Singleton instance = null;
- private Singleton(){
- }
- public static Singleton getInstance() {
- if (instance == null) {
- synchronized (Singleton.class) {
- if (instance == null) {
- instance = new Singleton();
- }
- }
- }
- return instance;
- }
- }
Singleton 这是一个单例的类
优点:
1,对于那些耗内存的类,只实例化一次,大大提高性能,尤其是移动开发中
2,程序运行中,始终保持只有一个实例在内存中
解释: private Singleton() 私有的构造方法让我们无法在外部创建新的
对象。只允许在类的内部使用。
private static volatile Singleton instance = null;
static 是表示这个变量使用唯一的内存地址。
volatile本质是在告诉jvm当前变量在寄存器中的值是不确定的,需要从内存中读取,不会因为多线程而导致一些BUG。
再就是这个双重判断null :
这是因为如果线程A进入了该代码,线程B 在等待,这是A线程创建完一个实例出来后,线程B 获得锁进入同步代码,实例已经存在,木有必要再创建一个,所以双重判断有必要。
阅读全文
0 0
- android 的单例模式
- Android的单例模式
- Android的设计模式-单例模式
- android 单例模式!
- android 单例模式
- Android 单例模式
- android单例模式
- Android 单例模式
- android 单例模式
- Android单例模式
- Android--单例模式
- android单例模式
- android 单例模式
- Android单例模式
- Android单例模式
- android 单例模式
- android单例模式
- android 单例模式
- MMU
- [Leetcode]_27 Remove Element
- 剑指offer
- swjtuoj 2380 Knapsack Problem
- Unity3D 学习笔记 —— Tween对象的实现与动作管理
- android 的单例模式
- c++第六次实验-数组的合并
- Unknown host 'android.oa.com'. You may need to adjust the proxy settings in Gradle.
- 用java编写一个计算器
- python基础知识
- Mysql锁机制
- linux shell函数使用
- 使用Lua脚本对pcap文件进行切流操作
- Linux高并发机制—epoll模型详解