編輯:關於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側滑菜單 今天看了鴻洋_大神在慕課網講的qq5.0側滑菜單。學了不少的知識,同時也佩服鴻洋_大神
在Android裡要實現樹形菜單,都是用ExpandableList(也有高手自己繼承ListVi
SlidePictures,男同網pictures package com.example.SlidePictures; import java.util