标签:dos命令 package cas ring 使用 out run 存在 静态成员
单例模式:保证类在内存中只有一个对象。外界只有使用权,无法创建对象。
如何保证内存中只有一个对象
A、构造方法私有
B、在成员位置自己创建一个变量
C、通过一个公共的方法提供访问
单例模式分为饿汉式和饱汉式
饿汉式:类一加载就创建对象 如Runtime类就属于饿汉式 他的exec()方法可以直接打开dos命令。
饱汉式:用的时候才去创建对象
饿汉式代码
package cn.idcast3;
public class Student {
private Student() {
}
// 属于单例模式的饿汉式 ,就是一进来就创建对象
//加私有的原因是由于外界不能访问,只有使用权
//加静态的原因:静态方法只能访问静态成员变量
private static Student s = new Student();
//为了保证外界可以直接使用,所以需要加静态
public static Student getStudent() {
return s;
}
}
测试
package cn.idcast3;
public class StudentDemo {
public static void main(String[] args) {
Student s1 =Student.getStudent();
Student s2= Student.getStudent();
System.out.println(s1==s2);
}
}
饱汉式代码
package cn.idcast3;
public class Teacher {
private Teacher() {
}
private static Teacher t = null;
//由于静态方法是共享的,所以t1创建了对象,但是t2不用
//懒加载(延迟加载)问题,由于饱汉式是需要用的时候才创建的,所以会存在
//存在线程安全问题,有共享数据Teacher和操作多条语句,并且将来可能在多线程环境
public synchronized static Teacher getTeacher() {
if (t == null) {
t = new Teacher();
}
return t;
}
}
测试
package cn.idcast3;
public class TeacherDemo {
public static void main(String[] args) {
Teacher t1= Teacher.getTeacher();
Teacher t2 = Teacher.getTeacher();
System.out.println(t1==t2);
}
}
标签:dos命令 package cas ring 使用 out run 存在 静态成员
原文地址:http://www.cnblogs.com/zengjiao/p/6511583.html