方法。
方法
方法,从而避免创建其它类创建它的实例。
调用它的方法;但是单例是有状态的,单例的创建过程就是先判断是否为null,然后才确定要不要创建它的实例。
方法、属性的集合;单例有自己的对象实例。
代码时,被初始化。
代码写在类的构造函数里面。也就是在执行完类的静态代码后,再执行类的构造器函数时,创建单例实例。
调用时,分配内存;
class SingleTon{
private static SingleTon singleTon=null;
private SingleTon(){}
public static SingleTon getSingleTon(){
if(singleTon==null){
singleTon=new SingleTon();
}
return singleTon;
}
}
public class Main{
public static void main(String[] args) throws Exception {
SingleTon s1=SingleTon.getSingleTon();
SingleTon s2=SingleTon.getSingleTon();
System.out.println(s1==s2);//true,说明二者内存地址相同,所以二者肯定是同一个对象,所以保证了类的单例存在
}
}
class SingleTon{
private static SingleTon singleTon=null;
private SingleTon(){}
synchronized public static SingleTon getSingleTon(){
if(singleTon==null){
singleTon=new SingleTon();
}
return singleTon;
}
}
public class Main{
public static void main(String[] args) throws Exception {
SingleTon s1=SingleTon.getSingleTon();
SingleTon s2=SingleTon.getSingleTon();
System.out.println(s1==s2);//true,所以保证了类的单例存在
}
}
class SingleTon{
private static SingleTon singleTon=new SingleTon();
private SingleTon(){}
public static SingleTon getSingleTon(){
return singleTon;
}
}
public class Main{
public static void main(String[] args) throws Exception {
SingleTon s1=SingleTon.getSingleTon();
SingleTon s2=SingleTon.getSingleTon();
System.out.println(s1==s2);//true,所以保证了类的单例存在
}
}
class SingleTon{
private static SingleTon singleTon=null;
private SingleTon(){
singleTon=new SingleTon();
}
public static SingleTon getSingleTon(){
return singleTon;
}
}
public class Main{
public static void main(String[] args) throws Exception {
SingleTon s1=SingleTon.getSingleTon();
SingleTon s2=SingleTon.getSingleTon();
System.out.println(s1==s2);//true,所以保证了类的单例存在
}
}