单例设计模式的饿汉式和懒汉式
单例模式:
采取一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例
实现方式:懒汉式 和饿汉式等等
单例模式的优点:减少系统性能的开销
懒汉式和饿汉式的区别:
缺点 优点
饿汉式:在内存中加载的时间过长 线程安全
懒汉式 : 线程不安全 延长对象的创建
class Order {
private String name;
//私有化构造函数
private Order() {
}
private static Order instance = null;
public static Order getInstance() {
if(instance==null){
synchronized(Order.class){
if (instance == null) {
instance = new Order();
}
}
}
return instance;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Single002 {
public static void main(String[] args) {
Order o1=Order.getInstance();
Order o2=Order.getInstance();
System.out.println(o1==o2);
System.out.println("################");
o1.setName("lisi");
System.out.println(o2.getName());
}
}
饿汉式
class Bank {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
// 私有化构造器
private Bank() {
}
// 创建静态内部对象
private static Bank instance = new Bank();
//提供公共静态方法,返回类对象
public static Bank getInstance() {
return instance;
}
}
public class Single001 {
public static void main(String[] args) {
Bank b=Bank.getInstance();
Bank b1=Bank.getInstance();
System.out.println(b==b1);
System.out.println("*****************");
b.setName("zhangsan");
System.out.println(b1.getName());
}
}