A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© star5603 高级黑马   /  2014-7-23 13:23  /  1613 人查看  /  9 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 star5603 于 2014-7-25 23:24 编辑

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

9 个回复

倒序浏览
肯定要问的  就算背也要背下来啊  
回复 使用道具 举报
.Mч┞尛__洋 发表于 2014-7-23 13:47
肯定要问的  就算背也要背下来啊

知道要问,具体问什么呢
回复 使用道具 举报
必须的,单例模式是怎么实现的。懒汉式和饿汉式的区别
回复 使用道具 举报
渴望学习 发表于 2014-7-23 14:57
必须的,单例模式是怎么实现的。懒汉式和饿汉式的区别

。。。
什么区别。。。
回复 使用道具 举报
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. }
复制代码

饿汉式是需要的时候才创建
回复 使用道具 举报
MeloX 发表于 2014-7-23 21:40
懒汉式是一开始就给附上值了,不管你用不用一直都存在于内存中。

额。。。
这个我知道,还有其他区别么,我记得老毕视频里面有说到个同步的区别,没记太清楚。。。
回复 使用道具 举报
MeloX 中级黑马 2014-7-23 22:22:31
8#
star5603 发表于 2014-7-23 22:03
额。。。
这个我知道,还有其他区别么,我记得老毕视频里面有说到个同步的区别,没记太清楚。。。 ...

同步讲的是饿汉式,如果不加synchronized会有线程安全问题,这个本人没有深入研究 也是视频看的,说是会当一个线程走到赋值的时候切了出去,另一个线程进来一看是null就给了一个,cpu切回来之后 不会再回去检查值 接着继续赋值。。
回复 使用道具 举报
应该会问懒汉饿汉
回复 使用道具 举报
先别想那个,技术分先多弄点吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马