单例模式

来源:互联网 发布:天尚网络机顶盒 编辑:程序博客网 时间:2024/05/20 07:52
如何保证类在内存中只有一个对象?     a.把构造方法私有  //构造方法的目的是不让外界创建对象     b.在成员位置自己创建一个对象 //静态方法只能访问静态成员变量     c.通过一个公共的方法提供访问//第一种饿汉式  public class Student {      //构造私有      private Student(){}      //自己造一个      //静态方法只能访问静态成员变量,加静态      //为了不让外界直接访问修改这个值,加private      private static Student s = new Student();      //提供公共的访问方式      //为了保证外界能够直接使用该方法,加静态      public static Student getStudent() {          return s;      }  } public class StudentDemo {      public static void main(String[] args){          Student s1 = Student.getStudent();          Student s2 = Student.getStudent();          System.out.println(s1==s2);          System.out.println(s1);  //输出地址值          System.out.println(s2);      }  }  /*    就是在内部自己先new 一个对象,不论有没有对象,程序运行时,首先先new 一个对象,相比较懒汉式而言,懒汉式实在类中进行判断过后,结果不为null时,才进行创建对象,而饿汉式,不进行任何判断就首先new 一个student对象,然后在继续在执行,饿汉式有线程安全问题*/