单例模式精讲
来源:互联网 发布:mac ae 2014破解 编辑:程序博客网 时间:2024/05/17 17:16
单例网上已经很多了,这里讲下我在美团面试遇到的问题。
首先底下的代码要求手写。
package com.lans.lwk.pracdemo.com.lans.lwk.appclass;
/**
* Created by Li on 2017/10/25.
*/
public class Singleton {
//双重锁
//可以保证线程的安全,但不完美
private static volatile Singleton singleton=null;//volatile 保证可见性和原子性和顺序性
private Singleton(){
}public static Singleton GetInstance(){ if(singleton==null){ (注解1) synchronized (Singleton.class){ if(singleton==null){ (注解2) singleton=new Singleton(); } } } return singleton;}
}
注解1: //主要是为了解决效率问题,因为同步需要消耗资源
注解2://为了防止多线程执行。
上面两个注解是当时问到的问题。
但是如果能回答出来下面的单例模式,则是加分项。
//枚举单例 推荐使用枚举单例
代码简单,实现序列化,保证线程安全
enum Singleton{
INSTANCE;
private Singleton(){
}
}
将枚举单例反编译
Compiled from “Singleton.java”
public final class com.lans.lwk.pracdemo.com.lans.lwk.appclass.Singleton extends java.lang.Enum{
public static final com.lans.lwk.pracdemo.com.lans.lwk.appclass.Singleton INSTANCE;
public static final com.lans.lwk.pracdemo.com.lans.lwk.appclass.Singleton[] values();
public static com.lans.lwk.pracdemo.com.lans.lwk.appclass.Singleton valueOf(java.lang.String);
static {};
}
可以看到如上代码:自动继承了Enum类,并且INSTANCE成为了public static final常量,并且提供了values和valueOf方法保证了序列化。因为在类加载时期被初始化过一次,此后不会再被初始化,所以保证了单例。
欢迎大家关注我左侧的微信公众号,致力于Android知识,技术,心得等的分享与交流。并提供Android学习的路线与思维导图。
- 单例模式精讲
- 单例模式精讲
- C++单例模式精讲
- 设计模式-第1讲-单例
- java设计模式 第二讲 单例模式
- JavaSE第二十五讲:单例模式详解
- 第03讲-单例模式_方法调用
- 《java与模式》----创建模式系列工厂模式、单态模式精讲
- java与模式》----创建模式系列工厂模式、单态模式精讲
- 第十二讲:模态,单例,单例模式,需求分析,框架设计
- 设计模式第六讲:单例模式(附优化方案)
- 设计模式第一讲:单例模式(IBM开发者论坛已经发表的文章)
- 设计模式精讲
- 网上看到一个讲c++单例模式的帖子,我转载过来。
- #笔记#圣思园 JavaSE 第25讲——单例模式
- java学习笔记之构造方法私有化与单例模式初讲
- 单例、单例模式
- java基础第十讲——数据库、单例设计模式、服务器、项目(数据库—服务器—网络)
- 网站优化 大并发 大流量 大存储 负载均衡 集群
- Java 理解 子类成员变量与父类成员变量同名 方法的重写
- hbase常见错误----单机版hbase启动失败zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after...
- python安装beautifulSoup
- 125. Valid Palindrome
- 单例模式精讲
- ROS学习笔记(一):在ROS中使用USB网络摄像头传输图像
- css基础———浮动的作用及副作用
- qt模态对话框 以及exec()事件循环简单实现
- mysql查看一张表有多少字段
- android Application生命周期
- bzoj1485: [HNOI2009]有趣的数列
- fmpdam1.2协议报文格式说明
- 刷单、套证不止,美团是要成新《反不正当竞争法》“第一案”?