單例模式是指程序單例,即再同一程序內是單例的,跨程序單例一般需要使用aidl+service的模式。
單例的三種模式
/*餓漢式*/
/*此模式一般用於此單例在程序開始時就可能被使用,因為是是static修飾的,所以在程序初始化的時候就建立了,基本現在看不到此種方法*/
public
class
instancedemo1
public
static instancedemo1 getinstance()
}/*飽漢式*/
/*需要的時候才建立,加鎖會導致,每次呼叫getinstance時,都要等待同步鎖釋放*/
public
class
instancedemo2
public
static synchronized instancedemo2 getinstance()
return minstncedemo2;}}
/*雙重鎖模式*/
/*在飽漢式上加以優化得來的,目前推薦使用此種方法*/
public
class
instancedemo3
public
static instancedemo3 getinstance()
}}return minstncedemo3;
}}
單例模式中的記憶體洩漏問題
以context(此物件資源耗費較多)為例。其他物件可以參考來使用
public
class
instancedemo
public
static instancedemo getinstance
(context context)}}
return minstncedemo;
}}
單例模式不單例注意事項
我們一般的單例模式是這樣實現的 publicclasssingletonclass returninstance privatesingletonclass 在多執行緒的情況下,如果兩個執行緒同時執行到if instance null 的裡面,則該單例模式就不再單例了!解決方案 publicclas...
一些注意事項
0.解題思路 a.普通思路 b.遞迴 bfs dfs c.動態規劃 比遞迴快 d.雙指標 比for迴圈快 如 快慢指標方法 e.用棧 1.陣列初始化 int a new int 5 a 0 預設為0.二維陣列也一樣。boolean b new boolean 5 b 0 預設為false.strin...
學習設計模式的一些注意事項
1.不要為了學習設計模式,而學 設計模式 我們學習的時候看到的只是結果,並不了解過程和動機,也就是其他人在什麼樣的情況下做出這樣的設計,而這個恰恰是各種教程 資料上學習不到的。所以再遇到問題時,嘗試使用設計模式來解決這個問題。2.避免過度使用設計模式,不要為了使用設計模式,而使用設計模式。設計模式只...