【笔试】20、单例模式
来源:互联网 发布:mac双系统卸载win7 编辑:程序博客网 时间:2024/04/30 04:56
题目:设计一个类,我们只能生成该类的一个实例
一般解法
/** *题目:设计一个类,我们只能生成该类的一个实例 *时间:2015年8月24日10:19:39 *文件:Singleton.java *作者:cutter_point */package bishi.Offer50.y2015.m08.d24;public class Singleton{private static Singleton sl = null;private Singleton(){}public static Singleton Instance(){if(sl == null)sl = new Singleton();return sl;}public static void main(String[] args){}}
考虑多线程
/** *题目:设计一个类,我们只能生成该类的一个实例,当运用到多线程的时候 *时间:2015年8月24日10:19:39 *文件:Singleton.java *作者:cutter_point */package bishi.Offer50.y2015.m08.d24;public class Singleton2{private static Singleton2 s2 = null;private Singleton2(){}public static synchronized Singleton2 Instance()//加锁耗费资源{if(s2 == null)s2 = new Singleton2();return s2;}public static void main(String[] args){// TODO Auto-generated method stub}}
优化多线程
/** *题目:设计一个类,我们只能生成该类的一个实例,当运用到多线程的时候,优化代码 *时间:2015年8月24日10:53:43 *文件:Singleton3.java *作者:cutter_point */package bishi.Offer50.y2015.m08.d24;public class Singleton3{private static Singleton3 s3 = null;private Singleton3(){}public static Singleton3 Instance(){if(s3 == null){//上锁synchronized(Singleton3.class){s3 = new Singleton3();}//synchronized}return s3;}}
简单可行的方法实现
/** *题目:设计一个类,我们只能生成该类的一个实例,当运用到多线程的时候,优化代码,利用静态创建 *时间:2015年8月24日10:53:43 *文件:Singleton4.java *作者:cutter_point */package bishi.Offer50.y2015.m08.d24;public class Singleton4{private static Singleton4 s4 = new Singleton4();private Singleton4(){}public static Singleton4 Instance(){return s4;}}
按需生成单例,不需要的时候不创建
/** *题目:设计一个类,我们只能生成该类的一个实例,当运用到多线程的时候,优化代码,利用静态创建,但是静态创建的话,我们有时候不需要也会创建这个实例 *我们按需创建实例的话,我们可以借助一个内部类创建 *时间:2015年8月24日10:53:43 *文件:Singleton4.java *作者:cutter_point */package bishi.Offer50.y2015.m08.d24;public class Singleton5{private Singleton5(){}private static class Nested{public static Singleton5 S5 = new Singleton5();}public static Singleton5 Instance(){//得到单例return Nested.S5;}}
0 0
- 【笔试】20、单例模式
- 笔试中的Singleton单例模式
- 单例模式(某公司校园招聘笔试题目)
- Java笔试题——Singleton单例模式
- 笔试题:写一个单例模式的类
- 笔试Java实现单例设计模式(最优方案)
- C++常考笔试题:用C++实现单例模式
- 单例、单例模式
- 单例模式-多线程单例模式
- 单件模式(单例模式)
- 设计模式------单例模式
- 设计模式------单例模式
- 设计模式-单例模式
- 设计模式 - 单例模式
- 设计模式---单例模式
- 设计模式---单例模式
- PHP模式-单例模式
- 【设计模式】单例模式
- System.Net.HttpWebRequest.GetRequestStream超时问题
- Android基础之Android的系统体系结构
- 使用Inotify实时同步文件夹
- 读取excel数据并保存为xml
- HDU 1039.Easier Done Than Said?【字符串处理】【8月24】
- 【笔试】20、单例模式
- mysql索引的类型和优缺点
- 幂取模
- VMWARE虚拟化环境下对GPU的配置说明
- Spark 学习资料整理
- 几个需要关注的问题
- 用NEXUS搭建MAVEN私服
- 创建数据库并带编码
- BestCoder#52 Victor and World