黑马程序员技术交流社区

标题: 面试中会问单例设计模式吧 [打印本页]

作者: star5603    时间: 2014-7-23 13:23
标题: 面试中会问单例设计模式吧
本帖最后由 star5603 于 2014-7-25 23:24 编辑

面试的时候问单例设计模式都是怎么问的,问什么。。。

作者: .Mч┞尛__洋    时间: 2014-7-23 13:47
肯定要问的  就算背也要背下来啊  
作者: star5603    时间: 2014-7-23 14:26
.Mч┞尛__洋 发表于 2014-7-23 13:47
肯定要问的  就算背也要背下来啊

知道要问,具体问什么呢
作者: 渴望学习    时间: 2014-7-23 14:57
必须的,单例模式是怎么实现的。懒汉式和饿汉式的区别
作者: star5603    时间: 2014-7-23 15:05
渴望学习 发表于 2014-7-23 14:57
必须的,单例模式是怎么实现的。懒汉式和饿汉式的区别

。。。
什么区别。。。
作者: MeloX    时间: 2014-7-23 21:40
star5603 发表于 2014-7-23 15:05
。。。
什么区别。。。

懒汉式是一开始就给附上值了,不管你用不用一直都存在于内存中。
  1. public class Singleton{
  2.      private static final Singleton instance = new Singleton();
  3.      private Singleton(){}
  4.      public static Singleton getInstance(){
  5.              return instance;
  6.     }
  7. }
复制代码
  1. public class Singleton {

  2.   private static Singleton instance = null;

  3.   public static synchronized Singleton getInstance() {

  4.   //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  5.   //使用时生成实例,提高了效率!
  6.   if (instance==null)
  7.     instance=new Singleton();
  8.   return instance;   }

  9. }
复制代码

饿汉式是需要的时候才创建

作者: star5603    时间: 2014-7-23 22:03
MeloX 发表于 2014-7-23 21:40
懒汉式是一开始就给附上值了,不管你用不用一直都存在于内存中。

额。。。
这个我知道,还有其他区别么,我记得老毕视频里面有说到个同步的区别,没记太清楚。。。
作者: MeloX    时间: 2014-7-23 22:22
star5603 发表于 2014-7-23 22:03
额。。。
这个我知道,还有其他区别么,我记得老毕视频里面有说到个同步的区别,没记太清楚。。。 ...

同步讲的是饿汉式,如果不加synchronized会有线程安全问题,这个本人没有深入研究 也是视频看的,说是会当一个线程走到赋值的时候切了出去,另一个线程进来一看是null就给了一个,cpu切回来之后 不会再回去检查值 接着继续赋值。。
作者: 止询初衷    时间: 2014-7-23 22:25
应该会问懒汉饿汉
作者: lijiang    时间: 2014-7-23 22:41
先别想那个,技术分先多弄点吧





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2