单利模式:
1:饿汉式:类一加载就创建对象(线程安全,开发用);
2:懒汉式:用的时候才创建对象;(懒加载,线程不安全);
饿汉式:
1 public class Demo {
2 /*
3 * 单例模式--1:饿汉式; 2:懒汉式;
4 * 不让别人造对象,保证内存中只有一个实例化对象,提供对外的方法,给别人访问。
5 * 私有化构造方法;自己创建一个私有化的实例化对象,提供静态方法给外界访问;
6 */
7 private Demo (){}
8 private static Demo d = new Demo();
9 public static Demo getDemo(){
10 return d;
11 }
12
13 public void bodyMethod(){
14 System.out.println("单利模式--饿汉式");
15 }
16 }
2:懒汉式:
1 public class Demo {
2 private Demo (){}
3 private static Demo d =null;
4 //为了让线程安全,加synchronized 关键字
5 public synchronized static Demo getDemo(){
6 if(d==null){
7 d=new Demo();
8 }
9 return d;
10 }
11
12 public void bodyMethod(){
13 System.out.println("单利模式--懒汉式");
14 }
15 /*
16 * 面试题:单例模式的思想是什么?请写一个代码体现。
17
18 开发:饿汉式(是不会出问题的单例模式)
19 面试:懒汉式(可能会出问题的单例模式)
20 A:懒加载(延迟加载)
21 B:线程安全问题
22 a:是否多线程环境 是
23 b:是否有共享数据 是
24 c:是否有多条语句操作共享数据 是
25 */
26 }