/*
* 单例设计模式。
* 1.饿汉式:
* class Single
* {
* private static final Single s=new Single();
* private Single(){}
* public static Single getInstance()
* {
* return s;
* }
* }
*/
//懒汉式:
class Single
{
private static Single s=null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
//加上synchronized,B线程进不来。
//使用静态代码块,只判断一次锁,使用静态函数每一次都需要判断。
//锁为该方法所在类的字节码文件对象
synchronized(Single.class)
{
if(s==null)
{
//--A线程进入,会创建对象
//--B线程进入,会创建对象
s=new Single();
}
}
}
return s;
}
}
public class SingleDemo {
}
* 单例设计模式。
* 1.饿汉式:
* class Single
* {
* private static final Single s=new Single();
* private Single(){}
* public static Single getInstance()
* {
* return s;
* }
* }
*/
//懒汉式:
class Single
{
private static Single s=null;
private Single(){}
public static Single getInstance()
{
if(s==null)
{
//加上synchronized,B线程进不来。
//使用静态代码块,只判断一次锁,使用静态函数每一次都需要判断。
//锁为该方法所在类的字节码文件对象
synchronized(Single.class)
{
if(s==null)
{
//--A线程进入,会创建对象
//--B线程进入,会创建对象
s=new Single();
}
}
}
return s;
}
}
public class SingleDemo {
}