码迷,mamicode.com
首页 > 其他好文 > 详细

什么是单例模式?

时间:2017-03-18 17:35:39      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:并且   共享   get   ret   创建对象   线程安全   public   懒加载   问题   

  
单例模式:
1.保证类在内存中只能有一个对象

单例模式分为:
1.懒汉式:类一加载就创建对象
2.饿汉式:用的时候,才去创建对象

相关经验:
饿汉式 (是不会出现问题的单例模式)
懒汉式 (可能会出现问题的单例模式)
(1.)懒加载(延迟加载)
(2.)线程安全问题
1.)是否多线程环境 是
2.)是否有共享数据 是
3.)是否有多条语句操作共享数据 是
举例:
   1.饿汉模式:
     public class Student{
//私有构造方法
private Student(){
}
//在本类中进行实例,只能实例一次,并且是私有的
private static final Student STUDENT = new Student();
//提供公共的方法,供外界去访问
public static Student getStudent(){
return STUDENT;
}
}

    2.懒汉模式
public class Student{
private Student(){}
//这是声明这个对象,什么时候使用它的时候什么时候去创建
private static Student student = null;
          //线程同步锁,确保内存中只能有一个对象
public synchronized static Student getStudent(){
if (student == null) {
student = new Student();
}
          return student;
}
}

什么是单例模式?

标签:并且   共享   get   ret   创建对象   线程安全   public   懒加载   问题   

原文地址:http://www.cnblogs.com/lyh1299259684/p/6574787.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!