java基础(单例)
能不能说一下jdk中哪些地方用到了单例模式,且说说这里为什么要用单例,网上查到的都不怎么样。。 --------------------编程问答-------------------- 为什么要用单例不是1、2句能说完的,LZ看设计模式的书去吧。 --------------------编程问答-------------------- --------------------编程问答-------------------- java.lang.Runtime就是用的单例模式因为它是用来与运行环境交互的,不管在程序中何时何地获得一个Runtime的对象,它都应该是同一个对象 --------------------编程问答-------------------- log4j --------------------编程问答-------------------- 发现技术性的问题都很少有人回答。我纯粹打酱油路过跑过也不想错过的。 --------------------编程问答-------------------- --------------------编程问答-------------------- jdk源码没看过几个。
像3楼java.lang.Runtime确实是单例模式
Spring框架里面也有单例。
至于为什么要用单例,有一个很简单的理由。
省资源,提高程序的性能。
给你举个例子。
假设街道办事处,老百姓过来可以领取避孕套。
这个部门请一个人就可以了,有必要为每个老百姓都雇佣一个人发避孕套吗?
这个人,就跟对象一样,他是占资源的,你需要给他发工资的。
就像有些对象,他是占数据库连接的,亦或是他占内存,亦或是每创建他一次,都需要费时间。
但是,某些特定环境中,我们只需要这样一个对象。
并且,想控制,大家都用这个一个对象。
这个时候就需要单例模式。
如果,上面的看明白了。
我们就还可以具体的探讨下什么时候不适合用单例。
上面我也说了,某些特定环境。
但是有些环境用单例就不好。
如果多线程,涉及到线程安全的时候。这个时候可能就不适合用到单例。
多线程,要求线程安全,你可能就要做相应的同步工作了。
举个例子,比如现在这个社区,现在想提高服务质量了。想为每个人,都发适合尺寸的避孕套。
假如一天人特别多,大家一拥而上,这个时候这个工作人员就很有可能发错大小的了,有的人的套套的尺寸就
不对了。
怎么办呢,不能让群众不舒服啊,那就大家排队吧一个一个来领。
这样效率也就降低了。
OOAD这个东西,要慢慢理解。
你没有代码经验的时候很难理解。
--------------------编程问答-------------------- PS:引用三楼同志的名人名言
经常结贴,你就会了。 --------------------编程问答-------------------- 你没有代码经验的时候很难理解
补充:Java , Java SE