public class Text02 {
public static void main(String[] args) {
// 单利:程序在运行期间不管通过什么途径,执行创建一个对象,对象的生命周期是整个项目期间运行
Person person = Person.getInstance();
for (int i = 0; i < 5; i++) {
new Thread(new Runnable() {
@Override
public void run() {
Student student = Student.getInstance();
System.out.println(student);
}
}).start();
}
}
}
// 方法一创建单利(一开始就有内存)
class Person {//(在程序期间不能被释放 所以加static 单利)
// static
static Person p = new Person();
static Person getInstance() {
return p;
}
}
// 第二种方法 (用的时候才会占用内存)
class Student {
// volatile 每个线程都自己栈
volatile static Student stu = null;
static Student getInstance() {
synchronized (Student.class) {
if (stu == null) {
stu = new Student();
}
}
return stu;
}
}
网友评论