一、static单例设计模式
单例模式只涉及一个类,确保在系统中一个类只有一个实例,并提供一个全局访问入口。
实例:只有一个地球作为前提
1.饿汉式(线程安全,调用效率高,不能延时加载)
public class Earth{
// 当类初始化的时候立即加载对象
private static Earth earthInstance1=new Earth();
// 无参构造器
private Earth(){
}
// 不用同步方法,所以调用效率高
public static Earth getEarthIstance(){
return earthInstance1;
}
}
2.懒汉式(线程安全,调用效率不高,能延时加载)
public class Earth{
private static Earth earthInstance2;
// 无参构造器
private Earth(){
}
public static Earth getEarthIstance(){
if(earthInstance2=null){
earthInstance2=new Earth;
}
return earthInstance2;
}
}
public class Application{
public static void main(String[] args){
Earth earthInstance1=Earth.getEarthInstance();
Earth earthInstance2=Earth.getEarthInstance();
System.out.println(earthInstance1);
System.out.println(earthInstance2);
}
}
二、空指针异常
NullPointerException即空指针异常,俗称NPE。
如果一个对象为null,调用其某属性或行为时就会产生NullPointerException,
这个异常通常是由JVM抛出的,例如:
public class Main {
public static void main(String[] args) {
String s = null;
System.out.println(s.toLowerCase());
}
}
本文探讨了Java中静态单例设计模式的两种实现方式——饿汉式和懒汉式,以及空指针异常的原理。通过实例演示了如何确保类只有一个实例并提供全局访问,同时强调了避免空指针异常的最佳实践。
2621

被折叠的 条评论
为什么被折叠?



