最简单的java单例
?最簡單的java單例源代碼:
?
class Singleton
{
?private Singleton()
?{
?}
?public static Singleton instance = null;
?public static Singleton getInstance()
?{
??if(instance == null)
???instance = new Singleton();
??return instance;
?}?
?public static void main(String args[])
?{
??Singleton s1, s2;
??s1 = Singleton.getInstance();
??s2 = Singleton.getInstance();
??System.out.println(s1 == s2);
??System.out.println(s1.equals(s2));
??System.out.println(s1);
??System.out.println(s2);
?}
}
/*
class Singleton
{
?private static int count = 0;
?private Singleton()
?{
?}
?public static Singleton instance = null;
?public static Singleton getInstance()
?{
??if(instance == null)
???instance = new Singleton();
??count++;
??return instance;
?}
?public static void display()
?{
??System.out.println(count);
?}
?public static void main(String args[])
?{
??Singleton s1, s2;
??s1 = Singleton.getInstance();
??s1.display();
??s2 = Singleton.getInstance();
??s2.display();
??System.out.println(s1 == s2);
??System.out.println(s1.equals(s2));
??System.out.println(s1);
??System.out.println(s2);
?}
}
*/
?
上述代碼對于單線程的程序是不會有問題的,但是如果用于多線程,很可能產生問題。改進方法:
將public static Singleton getInstance()改成public static synchronized Singleton getInstance()
總結
以上是生活随笔為你收集整理的最简单的java单例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: undefined reference
- 下一篇: 变动性算法源代码分析与使用示例(copy