/**单例--饥汉模式*/
public class Singleton1 {
private int count;
private static Singleton1 instance=new Singleton1(10);
private Singleton1(int n){
this.count = n;
System.out.println("count = " + this.count);
}
public int getCount(){
return this.count;
}
public static Singleton1 getInstance(){
return instance;
}
}
public class TestSingleton1{
public static void main(String[] args){
Singleton1 a1 = Singleton1.getInstance();
Singleton1 a2 = Singleton1.getInstance();
System.out.println("a1.count = " + a1.getCount());
System.out.println("a2.count = " + a2.getCount());
System.out.println("a2 == a1 is " + (a1 == a2));
}
}
/**单例--饱汉模式*/
public class Singleton2
{
private double r;
private static Singleton2 sp;
private Singleton2()
{
this.r = java.lang.Math.random();
}
public static Singleton2 getInstance()
{
if (sp==null)
{
sp = new Singleton2();
}
return sp;
}
public double getR()
{
return r;
}
public static void main(String args[])
{
Singleton2 sp1 = Singleton2.getInstance();
Singleton2 sp2 = Singleton2.getInstance();
System.out.println(sp1.getR());
System.out.println(sp2.getR());
System.out.println("sp2 == sp1 is " + (sp1 == sp2));
}
}