虽然不知道单例模式有什么用,但既然很有用还是先写写记住吧!
单例模式顾名思义只由一个实例,就是new的只能是一个,你可以new很多个,但他的地址是一样的,也就是一个…这么绕口以后再看也看不懂了。
单例模式分为两种:饿汉式模式与懒汉式模式!
饿汉式:因为它很饿所以很着急,不管其他有没有new,他就先new出来,因为是提前new出来,所以不管其他new不new,但是他就一直占用内存,很浪费啊。
懒汉式:它很懒很懒,只由别人调用它时,它才不情不愿的把对象给你。所以他就一点不浪费了!
// 下边是饿汉模式代码块
class SingleTon{
// ②方法都是静态的,属性肯定也得是啊
// ③final 是为了防止有人给修改信息(比如反射)
final static SingleTon instance = new SingleTon();
// 把无参构造私有化,断绝了他们的念头
private SingleTon(){}
// 造个方法 给他们调用
// ①得是静态的啊,不然main...
public static SingleTon getInstance(){
return instance;
}
}
// 懒汉式
class LazySingleTon{
static LazySingleTon instance = null;
private LazySingleTon(){}
public static LazySingleTon getInstance(){
if(instance == null){
instance = new LazySingleTon();
}
return instance;
}
}