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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小柴 中级黑马   /  2014-6-6 09:58  /  1596 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在毕老师的视频中, 单例懒汉式与饿汉式只在多线程中涉及!   请懂得大神,帮忙解释下懒汉式与饿汉式和他们的用途???谢谢!

12 个回复

倒序浏览
单例设计模式,目的是为了让该对象只实例化一次,例如,在读取配置文件的时候 ,只需要读一次 ,就可以通过单例设计模式,让该配置文件只读取一次就够了。
回复 使用道具 举报
能用代码说明下吗?:handshake
回复 使用道具 举报 1 1
单例设计模式:
  饿汉式:public class Single{
  private static final Single s = new Single();
  private Single(){ };
  public static Single getInstance(){
  return s;}}
  懒汉式:public class Single{
  private static Single s = null;
  private Single(){}
  public static Single getInstance(){
  if(s==null){
  synchronized(Single.class){
  if(s==null) s=new Single();}}
  return s;}}
其中懒汉式又称为延迟加载,在具体用到时再实例化。
而饿汉式是类一加载对象就已存在,在实际开发中建议使用饿汉式,不过一般考试会考懒汉式
回复 使用道具 举报 3 0
这种问题怎么老有人问,你多看两遍视频,不懂来找我
回复 使用道具 举报 1 0
主要为了让对象只实例化一次,饿汉式可以是多线程的,多线程情况下保证对象只实例化一次
回复 使用道具 举报
谢谢啊!这下明白了!
回复 使用道具 举报
学习了,很强大哈,
回复 使用道具 举报
来围观看看
回复 使用道具 举报
我来学习了!!!!!!!!!!
回复 使用道具 举报
复习一下。免得以后忘记了
回复 使用道具 举报

单例:将构造函数private

  1. public class Single{
  2.   private static final Single s = new Single();
  3.   private Single(){ };
  4.   public static Single getInstance(){
  5.   return s;}}
  6.  public class Single{
  7.   private static Single s = null;
  8.   private Single(){}
  9.   public static Single getInstance(){
  10.   if(s==null){
  11.   synchronized(Single.class){
  12.   if(s==null) s=new Single();}}
  13.   return s;}}
复制代码
回复 使用道具 举报

谢谢,大家关照!提问结束了!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马