java 基礎知識複習(七)

2021-09-01 19:34:40 字數 676 閱讀 9226

(七)

1. 有這樣乙個類:

// getter and setter

要求:假如有若干個類person物件存在乙個list當中,對他們進行排序,分別按照名字、年齡、id進行排序(要有正序與倒序兩種排序方式)。假如年齡或者姓名重複,按照id的正序進行排序。要求使用策略模式進行。

2. hashset底層是使用hashmap實現的。當使用add方法將物件新增到set當中時,實際上是將該物件作為底層所維護的map物件的key,而value則都是同乙個object物件(該物件我們用不上);

3. hashmap底層維護乙個陣列,我們向hashmap中所放置的物件實際上是儲存在該陣列當中;

4. 當向hashmap中put一對鍵值時,它會根據key的hashcode值計算出乙個位置,該位置就是此物件準備往陣列中存放的位置。

5. 如果該位置沒有物件存在,就將此物件直接放進陣列當中;如果該位置已經有物件存在了,則順著此存在的物件的鏈開始尋找(entry類有乙個entry型別的next成員變數,指向了該物件的下乙個物件),如果此鏈上有物件的話,再去使用equals方法進行比較,如果對此鏈上的某個物件的equals方法比較為false,則將該物件放到陣列當中,然後將陣列中該位置以前存在的那個物件鏈結到此物件的後面。

6. hashmap的記憶體實現布局:

7. 所謂泛型:就是變數型別的引數化。

Java基礎知識複習(封裝詳解)

封裝 是指隱藏物件的屬性和實現細節,僅對外提供公共訪問方式,是物件導向方法中重要原則。好處 1 可以徹底的隱藏方法的內部實現,僅提供乙個呼叫方法,使用這個類時不需要關心是如何實現的,只需知道如何呼叫即可。2 提高物件資料的安全性。3 提高重用性。原則 使用公有與私有這兩個訪問修飾符,將不需要對外提供...

java基礎知識點複習

物件導向程式設計有三大特性 封裝,繼承,多型 多型時父類跟子類的建構函式都會被呼叫?答 子類預設呼叫父類的無參構造方法,所以如果子類沒有顯示呼叫父類的構造方法,父類中沒有無參的的建構函式,編譯出錯 多型 1.實現多型的三個條件 a.必須要有繼承關係子類跟父類 b.子類要重寫父類的方法,子類對父類的方...

基礎知識複習

總結 1.閉包 閉包的好處就是讓乙個變數常駐記憶體,供後續的程式使用 2.檢視乙個物件是可迭代物件的方法 1 使用dir 函式.如果結果中有 iter 就是可迭代物件 print dir obj 2 通過isinstance 函式,返回true就是可迭代物件 from collections imp...