生活随笔
收集整理的這篇文章主要介紹了
JavaSE各阶段练习题----多线程-垃圾回收
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1獨立完成三種單例模式的代碼
?
package Single; /* 餓漢式 ?*/ public class Demo01 { ????public static void main(String[] args) { ????????HungrySingle h1 = HungrySingle. getInstance (); ????????HungrySingle h2 = HungrySingle. getInstance (); ????????System. out .println(h1 == h2); //true ????} } class HungrySingle{ ????private static HungrySingle INT = new HungrySingle(); ????private HungrySingle(){} ????public static HungrySingle getInstance(){ ????????return INT ; ????} }
?
package Single; public class Demo02 { ????public static void main(String[] args) { ????????LazySingle l1 = LazySingle. getIntance (); ????????LazySingle l2 = LazySingle. getIntance (); ????????System. out .println(l1 == l2); //true ????} } class LazySingle{ ????private static LazySingle LAZ = null ; ????private LazySingle(){} ????public static LazySingle getIntance(){ ????????if ( LAZ == null ){ ????????????LAZ = new LazySingle(); ? // 當真正需要這個類的時候在創建這個類 ????????} ????????return LAZ ; ????} }
?
package Single; public class Demo02_p { ????public static void main(String[] args) { ????????LazySingle l1 = LazySingle. getIntance (); ????????LazySingle l2 = LazySingle. getIntance (); ????????System. out .println(l1 == l2); //true ????} } class LazySingle2{ ????private static LazySingle2 LAZ = null ; ????private LazySingle2(){} ????// 懶漢式的線程不安全問題解決 ????public static synchronized LazySingle2 getIntance(){ ????????if ( LAZ == null ){ ????????????LAZ = new LazySingle2(); ? // 當真正需要這個類的時候在創建這個類 ????????} ????????return LAZ ; ????} }
?
package Single; public class Demo03 { ????public static void main(String[] args) { ????????SingletonOld so1 = SingletonOld. so ; ????????System. out .println(so1); ????????SingletonOld so2 = SingletonOld. so ; ????????System. out .println(so2); ????????System. out .println(so1 == so2); //true // ???SingletonOld.so = null; ????} } class SingletonOld { ????/* ????1. 私有化構造函數 ????2. 將對象實例化為 final ?????*/ ????private SingletonOld() { ????} ????public static final SingletonOld so = new SingletonOld(); }
?
?
2 深入理解線程協作和垃圾回收機制
線程協作:不同線程執行不同的任務,如果這些任務有某種聯系,那么線程之間必須能通過?通信,協調完成工作。根據生產者與消費者去理解:
?
垃圾回收機制:
所謂的垃圾回收機制,即在java中使用new關鍵字創建對象時,都會在堆內存中為之分配一塊內存,用于保護對象,當此內存不在被任何引用變量引用時,這塊內存就變成了垃圾,java引入垃圾回收機制(Garbage Collection)來處理垃圾,他是一個動態存儲管理技術,由java虛擬機自動回收垃圾對象所占的內存空間,不需要程序代碼來顯式釋放。
?
總結
以上是生活随笔 為你收集整理的JavaSE各阶段练习题----多线程-垃圾回收 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。