單例模式規定一個類只能有一個例項,不允許建立多個例項。為此,我們將類的建構函式設為私有,並透過靜態方法返回一個例項。但是,使用序列化,我們仍然可以建立類的多個例項。請參見下面的示例 -示例 - 破壞單例 線上演示import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class Tester{ public static void main(String[] args) throws ClassNotFoundException, IOException{ A a = A.getInstance(); A b ... 閱讀更多
單例模式規定一個類只能有一個例項,不允許建立多個例項。為此,我們將類的建構函式設為私有,並透過靜態方法返回一個例項。但是,使用克隆,我們仍然可以建立類的多個例項。請參見下面的示例 -示例 - 破壞單例public class Tester{ public static void main(String[] args) throws CloneNotSupportedException { A a = A.getInstance(); A b = (A)a.clone(); System.out.println(a.hashCode()); System.out.println(b.hashCode()); } } ... 閱讀更多
如果一個物件不再被活動引用引用,那麼它就有資格進行垃圾回收。請參見下面的示例 -示例public class Tester{ public static void main(String[] args) { test(); } public static void test(){ A a = new A(); } } class A {}當 test() 方法執行完成後,a 物件不再被引用,並且有資格進行垃圾回收。Java 垃圾回收器將在執行時釋放該物件。為了防止垃圾回收,我們可以建立一個物件的靜態引用,然後 ... 閱讀更多