7.18_java学习_单例设计模式

来源:互联网 发布:端口号范围 编辑:程序博客网 时间:2024/06/05 22:56

一:new初始化过程

Person p = new Person() 的执行过程

1.加载Person,class文件到内存中;

2.执行类中的静态的初始化

3.堆中开辟空间,分配地址;

4.建立属性,属性默认初始化;

5.对属性显示初始化(及刚开始定义属性时赋值)

6.对对象进行构造代码初始化;

7.对对象进行函数初始化;

8.将地址赋给栈中内存中的变量;

二,设计模式——单例设计模式

1.意义:解决一个类只能实例化一个对象‘

2.,过程:(1)先控制其他程序建立对象构造函数加private关键字

(2)还要建立一个对象,只有在本类中建立对象、

(3)提供访问方法。

3.提供两种解决方法(1)饿汉式(工程中常用方法)(2)懒汉式(工程中不用,面试常考)

/*饿汉式特点:安全,简单。先初始化对象;*/class Single {private Single(){}private static Single s =new Single();public static Single getInstance(){return s;}}/*懒汉式特点:不安全,对象时方法调用时初始化,也叫延时加载。*/class Single{private Single(){}private static Single s = null;public static Single getINstance(){if(s == null)s = new Single(); return s;}}/*懒汉式——安全解决方式一:函数加锁特点:效率低(每次访问进行判断)*/class Single{private Single(){}private static Single s = null;public static synchronized Single getINstance(){if(s == null)s = new Single(); return s;}}/*懒汉式——安全解决方式二:过程加锁特点:只判断一次
*/class Single{private Single(){}private static Single s = null;public static Single getINstance(){if(s == null){synchronized(single.class){if(a == null)s = new Single();}}return s;}}


 

 

0 0