//单例 ---- 单一实例 --- 有且仅有一个对象
// 饿汉式 : 一上来就创建对象,吃掉内存
class Student {
private Student(){}
private static Student stu = new Student();
public static Student getInstance(){
return stu;
}
//懒汉式:多线程环境
class Student {
private Student(){}
private static Student stu;
public static Student getInstance(){
if(stu==null){ //必须判断,防止抢占资源
synchronized(Student.class){
if(stu==null){ //必须判断,防止有线程在锁外睡着导致多个线程进入
stu = new Studnet();
}
}
}
return stu;
}
}
Servlet是单例的,在内存中仅存在一个对象,多个用户同事访问会存在线程安全问题
注意 : 尽量不要在Servlet中定义成员变量,如果非要定义成员变量也不要多其进行操作(只读不操作)