能不能说一下jdk中哪些地方用到了单例模式,且说说这里为什么要用单例,网上查到的都不怎么样。。

解决方案 »

  1.   

    java.lang.Runtime就是用的单例模式
    因为它是用来与运行环境交互的,不管在程序中何时何地获得一个Runtime的对象,它都应该是同一个对象
      

  2.   

    jdk源码没看过几个。像3楼java.lang.Runtime确实是单例模式Spring框架里面也有单例。至于为什么要用单例,有一个很简单的理由。省资源,提高程序的性能。给你举个例子。假设街道办事处,老百姓过来可以领取避孕套。这个部门请一个人就可以了,有必要为每个老百姓都雇佣一个人发避孕套吗?这个人,就跟对象一样,他是占资源的,你需要给他发工资的。就像有些对象,他是占数据库连接的,亦或是他占内存,亦或是每创建他一次,都需要费时间。但是,某些特定环境中,我们只需要这样一个对象。并且,想控制,大家都用这个一个对象。这个时候就需要单例模式。
    如果,上面的看明白了。我们就还可以具体的探讨下什么时候不适合用单例。上面我也说了,某些特定环境。但是有些环境用单例就不好。如果多线程,涉及到线程安全的时候。这个时候可能就不适合用到单例。多线程,要求线程安全,你可能就要做相应的同步工作了。举个例子,比如现在这个社区,现在想提高服务质量了。想为每个人,都发适合尺寸的避孕套。假如一天人特别多,大家一拥而上,这个时候这个工作人员就很有可能发错大小的了,有的人的套套的尺寸就不对了。怎么办呢,不能让群众不舒服啊,那就大家排队吧一个一个来领。这样效率也就降低了。OOAD这个东西,要慢慢理解。你没有代码经验的时候很难理解。