所谓单例模式,主要是为了解决,java对象有且只有一个,本质就是构造方法私有化,
单例模式:主要是为了节省内存空间,缺点是不能被继承,因为构造方法私有化了,外部的程序不能被调用了,
* 懒汉模式:构造方法私有化,
* 第一步:讲所有构造方法私有化,目的是让外部程序不能被调用,然后创建了一个方法,用来供外部程序调用
* */
public class Customer {
/*单例模式:主要是为了节省内存空间,确定是不能被继承,构造方法私有化,外部
* 程序不能调用构造方法,只在内存当中
* 懒汉模式:构造方法私有化,
* 第一步:讲所有构造方法私有化,目的是让外部程序不能被调用
* */
private static Customer c;
private Customer(){}
//对外提供了一个公开的获取customer类型对象的方法
public static Customer getInstance(){
if(c==null){
c=new Customer();
}
return c;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer c1=Customer.getInstance();
Customer c2=Customer.getInstance();
System.out.println(c1==c2);
}
}
打印结果: true
饿汉模式: 在类加载的阶段就已经创建这个对象了,
/*饿汉模式*/
public class Customer{
//静态变量
private static Customer c=new Customer();
//单例模式第一步:讲所有构造方法私有化,
// 目的是:让外部程序不能,直接调用构造方法创建对象
//因为只要构造方法执行,就会有一个新的对象诞生
private Customer(){}
// 对外提供一个公开的获取Customer类型对象的方法
public static Customer getInstance(){
return c;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Customer c1=Customer.getInstance();
Customer c2=Customer.getInstance();
System.out.println(c1==c2);
}
}