用静态内部类实现单例模式
基础知识:
- Java程序的初始化顺序依次是:父类静态变量-->父类静态代码块-->子类静态变量-->子类静态代码块-->父类非静态变量-->父类非静态代码块-->父类构造函数-->子类非静态变量-->子类非静态代码块-->子类构造函数
- 用静态的内部类实现单例模式的原理:静态内部类可以不依赖外部类的实例而被实例化。(更多关于静态内部类的内容,请看:Java的内部类 )
Java静态的内部类实现单例模式代码:
public class SingletonTest{ private SingletonTest(){ }
//开始写代码,使用内部静态类实现单例模式 public static SingletonTest getInstance(){
return innerStaticClass.instance; } static class innerStaticClass{ private static SingletonTest instance=new SingletonTest(); } //end_code
public static void main(String args[]){ SingletonTest singleton1 = SingletonTest.getInstance(); SingletonTest singleton2 = SingletonTest.getInstance(); System.out.println(singleton1 == singleton2); } }
C#版本的单例模式
最简单的写法:
public class Singleton { private Singleton(){} public static readonly Singleton instance = new Singleton(); }
参考: