单例类:如果一个类始终只能创建一个实例,则这个类被称为单例类。
错误代码:
此处)折叠或打开
class Singleton{
;
(){}
public static Singleton getInstance()
{
if (instance == null)
{
();//如果这样写的话会返回false,因为创建了两个对象
}
;
}
}
public class Hello {
public static void main(String[] args)
{
= Singleton.getInstance();
= Singleton.getInstance();
.out.println(instance1==instance2);
.sub();
}
}
正确写法
此处)折叠或打开
class Singleton{
static Singleton instance;
(){}
public static Singleton getInstance()
{
if (instance == null)
{
instance = new Singleton();
}
;
}
}
public class Hello {
public static void main(String[] args)
{
= Singleton.getInstance();
= Singleton.getInstance();
.out.println(instance1==instance2);
.sub();
}
}
运行结果为true。
关于static方法的小知识点:
此处)折叠或打开
class NullData
{
public static void test()
{
.out.println("Hello");
}
}
public class Hello {
public static void main(String[] args)
{
= null;
.test();
}
}
运行结果是:Hello
表明null对象可以访问它所属类的成员。如果一个null对象访问实例成员将会引发NullPointException异常,因为null
表明该实例根本不存在,那么它的实例变量和实例方法自然也不存在。