单例模式(饿汉式和懒汉式)

饿汉式

public class SingletonTest1 {  
  public static void main(String[] args) {  
  Bank bank1 = Bank.getInstance();  
  Bank bank2 = Bank.getInstance();  
  System.out.println(bank1 == bank2);//true    
 }  
}  
  
class Bank {  
  //创建私有化构造器    
 private Bank() {  
 }  
  //内部提供一个当前类的实例 且为静态    
 private static Bank instance = new Bank();  
  
  //提供公共的静态方法,返回当前类的对象    
 public static Bank getInstance() {  
  return instance;  
 }
}

懒汉式

class Order {  
  private Order() {  
 }  
  private static Order instance = null;  
  
  public static Order getInstance() {  
  if (instance == null) {  
  instance = new Order();  
 }  return instance;  
 }
}  
  
public class SingletonTest2 {  
  public static void main(String[] args) {  
  Order order1 = Order.getInstance();  
  Order order2 = Order.getInstance();  
  
  System.out.println(order1 == order2);//true    
 }  
}