饿汉式:
package bb;
//饿汉式
public class Bank {
//1.私有化类的构造器
private Bank(){
}
//2.类部创建类的对象
//4.要求此对象必须声明为静态的
private static Bank instance = new Bank();
//3.提供公共的静态的方法,返回类的对象
public static Bank getInstance(){
return instance;
}
}
class Test6{
public static void main(String[] args) {
Bank bank1 = Bank.getInstance();
Bank bank2 = Bank.getInstance();
System.out.println(bank1);
System.out.println(bank2);
}
}
懒汉式
package bb;
//懒汉式
/**
* 1.区别饿汉式,懒汉式
*
* 饿汉式:坏处:对象加载时间过长
* 好处: 饿汉式是线程安全的
*
*
* 懒汉式: 好处:延迟对象的创建
* 目前的写法线程不安全
*
*
*
*/
public class Sing {
public static void main(String[] args) {
Order order = Order.getInstance();
Order order1 = Order.getInstance();
System.out.println(order == order1);
}
}
class Order {
//1.私有化类的构造器
private Order() {
}
//2.声明当前类的实例,没有初始化
//4.此对象也必须声明为staticde
private static Order instance = null;
//3.声明public .static的返回当前类对象的方法
public static Order getInstance() {
if (instance == null) {
instance = new Order();
}
return instance;
}
}
应用场景:
网站计数器
应用程序的日志应用
数据库连接池
项目中读取配置文件的类
Application也是单例的典型应用
回收站
微信公众号:
一只Java程序猿
欢迎关注哦