核心思想:在程式執行的過程當中,該類的物件保持有且只有乙個的狀態
單例分兩種:懶漢式和餓漢式
單例需要滿足的條件
1.不讓外界建立這個物件即(
構造方法需要私有化)2.
在類的內部來建立這個物件即
(讓這個物件只建立一次
)3.需要給外部提供乙個訪問可以獲得該物件的方法即(
提供乙個get方法
)懶漢式**:
/懶漢式(不完整 執行緒安全問題 雙鎖控制) 在類被載入的時候 不會去建立物件 只有當你
//呼叫了獲取該類的方法時 才會建立該類物件
class singlel
//獲取物件的方法
public static singlel getinstance()
return singlel;
}
餓漢式**:
//餓漢式(只要該類 被載入 就會在方法區的 靜態區中 建立本類物件)
class singlee
//對外提供乙個訪問的方法
public static singlee getinstance()
}
實現的結果:列印了兩次,為了測試單例是否只能被建立乙個物件
//列印獲取單例物件 兩者列印的內容是一樣的,說明兩個是同乙個物件
system.out.println(singlee.getinstance());
system.out.println(singlee.getinstance());
system.out.println("-------------------");
//列印懶漢模式物件
從零雙排學java之集合collection
集合跟陣列一樣都是一種容器 集合為什麼會出現?陣列有什麼弊端 1.長度一旦確定不能修改 2.只能儲存同一種型別的元素 集合的好處 1.長度可變 2.可以存放不同型別的元素 注意 集合只能存 物件 也就是引用型別 基本型別會自動裝箱成包裝類 獲取元素個數 system.out.println coll...
從零雙排學java之迭代器
建立乙個集合 collection collection new arraylist 生成乙個迭代器 iterator iterator collection.iterator 判斷是否還有下乙個元素 iterator.hasnext 獲取下乙個元素 iterator.next 需求 建立乙個集合 ...
從零雙排java之Map
map是一種 key value 鍵值對 形式的集合,又稱雙列集合 key的值是 唯一的 乙個map集合中 key 可以允許有乙個是null hashmap和hashset 之間有沒有關係 實際上hashset的去重功能是通過向乙個map集合的key儲存資料來實現的 map集合中不管是去重還是排序 ...