题目:设计一个类。我们仅仅能生成该类的一个实例
一般解法
/**
*题目:设计一个类。我们仅仅能生成该类的一个实例
*时间: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;
}
}
阅读全文
版权声明:本文为博主原创文章,未经博主同意不得转载。 举报
- 本文已收录于下面专栏:
相关文章推荐
-
笔试面试集锦
「我正在一点一点做.整理以下的笔试面试题,欢迎读者朋友们跟我一起做。你能够把你的答案或代码直接评论在本文之下,也能够通过私信或邮件发给我,感谢诸位。同一时候。以下全部不论什么题目所给的点评里的答案,尤其是所给的外部链接若有不论什么问题。欢迎在本文评论下留言指正。谢谢。答题除了让你感受到思考的乐趣以外,还有奖哦,请君自看。- bcyy
- 2012-11-20 11:13
- 428
-
笔试中的Singleton单例模式
引子 “请写一个Singleton。”面试官微笑着和我说。 “这可真简单。”我心里想着,并在白板上写下了以下的Singleton实现: class Single...
- fcryuuhou
- 2013-06-30 20:24
- 386
-
九月十月百度,迅雷,华为。阿里巴巴最新校招笔试面试三十题(10.18)
九月十月百度,迅雷。华为,阿里巴巴,最新校招笔试面试三十题- 836811384
- 2013-10-22 11:24
- 511
-
单例模式(某公司校园招聘笔试题目)
单例(singleton)模式, 顾名思义。也就是说类仅仅有一个实例。在计划生育非常普遍的今天,我们非常easy理解单例模式:首先推断这个家庭是否生了一个孩子。假设没有生,则同意这个家庭生一个。假设已经生了一个...- stpeace
- 2012-10-20 15:23
- 1676
-
某个人写的找工作笔试经验,记录一下
题目挺简单 对于下一届找工作的师弟师妹,我给大家一个建议,就是要下手早些。尽早的多看一些笔试面试的题目经验等等。“程序猿面试宝典”我认为真的是很很好的一本书,找工作的话。提前好好看看这个是很有帮助的。 废话不多说了。找工作期间记下了不少的笔试面试题目,如今拿出来给大家分享一下。希望能对大家有帮助。 1. zx zx是我開始笔试面试的第一家单位。
笔试通知我是没有收到的。大早晨我就和同学一起跑到北科去霸王笔。工作人员给我的印象是非常nice的,非常有大公司的风范。我们霸笔成功。 笔试: 笔试题目是综合性的,涉及好多方面,比如软件project、信号、c 、c++、网络等等。
我是刚刚
- yonlist
- 2009-08-22 21:01
- 618
-
2012 九月十月百度人搜。阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
转自:http://blog.csdn.net/v_july_v/article/details/7974418 作者:July 出自:结构之法算法之道blog ...- lucky_greenegg
- 2013-05-26 11:09
- 10405
-
九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试三十题(10.18)
九月十月百度,迅雷。华为,阿里巴巴,最新校招笔试面试三十题- 445822357
- 2013-10-22 11:24
- 67
-
2013九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试题
九月十月百度人搜。阿里巴巴,腾讯华为小米搜狗笔试面试八十题 引言 自发表上一篇文章至今(其实。上篇文章更新了近3个月之久)。blog已经停了3个多月,而在那之...- u010590166
- 2013-12-12 12:02
- 5103
-
笔试里 单例模式的陷阱
遇到了一个有意思的事情:任选一种语言实现单例模式。 由于之前看过设计模式,这道题目感觉非常easy,可是后来想了下,应该不可能考的这么简单啊,分析了下出题者的意图。可能不是考察代码本身。而是考察你的严谨性。单例模式最先想到的就是懒汉式或者饿汉式,简单易写: 1.懒汉式: /* * 懒汉式 */ public class Singleton_simple { private Singleton_simple() {//1.构
- 功夫小当家
- 2012-10-18 12:58
- 363
-
2012 九月十月百度人搜,阿里巴巴。腾讯华为笔试面试八十题(第331-410题)
九月十月百度人搜。阿里巴巴。腾讯华为小米搜狗笔试面试八十题 9月11日, 京东: 谈谈你对面向对象编程的认识 8月20日,金山面试,题目例如以下: 数据库1中存放着a类数据,数...- qianlima_
- 2013-11-07 22:07
- 5167
-
原创
- 433
-
粉丝
- 80
-
喜欢
- 0
- 【APUE】8、pthread_create函数,创建子线程
- 【APUE】7、signal函数
- 【APUE】6、孤儿进程组
- 【APUE】5、fork函数
很多其它文章在线课程
- 【直播】机器学习&数据挖掘7周实训--韦玮
- 【套餐】系统集成项目管理project师顺利通关--徐朋
1条评论