小景哥哥部落格
set不允許元素重複且無序,常用實現有 hashset、linkedhashset 和 treeset。
hashset通過 hashmap 實現,hashmap 的 key 即 hashset 儲存的元素,所有 key 都使用相同的 value ,乙個名為 present 的 object 型別常量。使用 key 保證元素唯一性,但不保證有序性。由於 hashset 是 hashmap 實現的,因此執行緒不安全。
hashset 判斷元素是否相同時,對於包裝型別直接按值比較。對於引用型別先比較 hashcode 是否相同,不同則代表不是同乙個物件,相同則繼續比較 equals,都相同才是同乙個物件。
linkedhashset繼承自 hashset,通過 linkedhashmap 實現,使用雙向鍊錶維護元素插入順序。
treeset通過 treemap 實現的,新增元素到集合時按照比較規則將其插入合適的位置,保證插入後的集合仍然有序。
簡單的說一說mmap
mmap memory map,就是記憶體對映 簡單的說就是將檔案對映到使用者的位址空間中。這麼做有什麼好處呢?1.傳統檔案訪問方式是,首先用open系統呼叫開啟檔案,然後使用read,write等呼叫進行順序或者隨即的i o.這種方式是非常低效的,每一次i o操作都需要一次系統呼叫.而通過mmap...
說一說JS的IIFE
iife immediately invoked function expression,意為立即呼叫的函式表示式,也就是說,宣告函式的同時立即呼叫這個函式。對比一下,這是不採用iife時的函式宣告和函式呼叫 function foo foo 下面是iife形式的函式呼叫 functionfoo 函...
說一說JS的IIFE
iife immediately invoked function expression,意為立即呼叫的函式表示式,也就是說,宣告函式的同時立即呼叫這個函式。對比一下,這是不採用iife時的函式宣告和函式呼叫 function foo window console.log a 2 js的模組就是函式...