new b.c();
b b = new b();
b.c c = b.new c();
public class singleton
public synchronized static singleton getinstance()
return instance;
} }
public static singleton getinstance()
} return instance;
}
由於內部靜態類只會被載入一次,故該實現方式是執行緒安全的
類載入的初始化階段是單執行緒的
使用new,invokestatic,putstatic,getstatic指令時若該類未載入則觸發
反射使用某個類時若該類未載入則觸發
子類載入時若父類未載入則觸發
程式開始時主方法所在的類會被載入…
鏈結靜態內部類實現的單例模式
public class singleton
private static class holder
public static singleton getinstance()
}
附 類載入順序示例
package ktuil;
public class teststaticinnerclass
}class a
private p p2 = new p("a--p2");
static
");} public static class c
private p p2 = new p("c--p2");
static
");} }
}class b extends a
public p p2 = new p("b -- p2");
static
"); }}
class p
}
單例模式 靜態內部類
靜態內部類是乙個很好的實現單例的方式 看 package cn.liz.syn public class staticinner 私有的靜態內部類 private static class inner 公共的 獲取例項的方法 public static staticinner getinstance...
單例模式 靜態內部類
1 2 單例模式 靜態內部類3 4public class singletontest0711 1213 14 靜態內部類實現方式 15 16class singleton 2324 25 2.寫乙個靜態內部類,直接返回singleton 26 27private static class sing...
單例模式之靜態內部類實現
單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的乙個類只有乙個例項。即乙個類只有乙個物件例項。最常用的單例模式有惡漢式和懶漢式兩種方式,除此之外還有一種通過靜態內部類實現的單例模式。原文摘自 1.示例 public class...