———-android培训、java培训、java学习型技术博客、期待与您交流!——-
<span style="font-size:18px;">package demo;
/**
* 单例模式:一个类在内存中只能有一个实例
*思路:
*1.让外界无法创建对象(私有构造方法)
*2.在本类中创建一个本类对象(私有,静态)
*3.对外提供方法,让其他程序访问(私有,静态的获取方法,加上锁)
*分为2种:饿汉式与懒汉式
*<strong>总结:如果API中发现一个类没有构造方法,要么这个类的方法都是静态的,可以通过类名直接调用;
* 或者有一个静态的方法,返回值类型就这个对象。</strong>
*/
public class Demo5 {
public static void main(String[] args) {
Student s1=Student.getStudnet();
Student s2=Student.getStudnet();
System.out.println(s1==s2);
}
}
/**
* 饿汉式
*/
class Student1{
//私有构造
private Student1(){}
//创建私有并静态的本类对象
private static Student1 ss=new Student1();
//公共并静态的方法返回该对象
public static Student1 getStudent1(){
return ss;
}
}
/**
* 懒汉式
*
*/
class Student{
//私有构造
private Student(){}
//创建一个静态的该对象的成员变量为空
private static Student s=null;
//提供一个公共的静态方法,获取成员变量
public static synchronized Student getStudnet(){
if(s==null){ //判断成员变量是否为空
s=new Student();//是就创建对象
}
return s;
}
}
</span>