編輯:關於android開發
當第一次加載Singleton類時不會初始化sInstance,只有在第一次調用Singleton的getInstance方法時才會導致sInstance被初始化。因此第一次調用getInstance方法會導致
虛擬機加載SingletonHolder類,這種方法不僅能夠確保線程安全,也能夠保證單例對象的唯一性,同時也延遲的單例的實例化,所以這是推薦使用的單例模式方式
public class Singleton {
private Singleton(){};
public static Singleton getInstance(){
return SingletonHolder.sInstance;
}
/**
* 靜態內部類
*/
private static class SingletonHolder{
private static final Singleton sInstance = new Singleton();
}
}
這個方法雖然好像也很不錯,但是好像會出現什麼雙重檢查鎖定(DCL)失效。
public class MyImageLoader extends ImageLoader {
private static MyImageLoader instance;
public static MyImageLoader getInstance() {
if (instance == null) {
synchronized (MyImageLoader.class) {
if (instance == null) {
instance = new MyImageLoader();
}
}
}
return instance;
}
protected MyImageLoader() {
}
}
自定義控件之創建可以復用的組合控件(三)
自定義控件之創建可以復用的組合控件(三) 前面已學習了兩種自定義控件的實現,分別是自定義控件之對現有控件拓展(一)和 自定義控件之直接繼承View創建全新視圖(二),
android:自定義HorizontalScrollView實現qq側滑菜單
android:自定義HorizontalScrollView實現qq側滑菜單 今天看了鴻洋_大神在慕課網講的qq5.0側滑菜單。學了不少的知識,同時也佩服鴻洋_大神
Android提高21篇之十七:多級樹形菜單的實現
在Android裡要實現樹形菜單,都是用ExpandableList(也有高手自己繼承ListVi
SlidePictures,男同網pictures
SlidePictures,男同網pictures package com.example.SlidePictures; import java.util