一个类只有一个对象
应用:游戏开发中
创建方法:
1.
饿汉式:
(先初始化对象,在进入内存后,初始化对象被创建,实际开发中常用,安全)
(1)
构造对象私有化:
private 类名(){}
(2)
在类中创建一个对象
private static 类名 s=new 类名();
(3)
提供一个方法获取对象(即给其他程序一个接口获取对象)
public static 类名 getInstance() {
return s;
}
2.
懒汉式
(
方法被调用时才会创建初始化对象,也叫做:对象的延时加载;
这种方式存在危险:多人调用时,CPU资源分配
解决办法:(1)synchronized修饰方法--->效率变低
(2)双重判断(多线程技术,判断读锁次数降低)--->最终方案)
private static 类名 s=null;
private 类名(){}
public static 类名 getInstance() {
if(s==null){
synchronized(类名.class){
if(s==null){
s=new 类名();
}
}
}
return s;
}
明显的:饿汉式要比懒汉式简单,并且不会太耗内存。