摘要:基于鏈表,增刪快,查詢滿。散列算法通過散列算法獲取下標(biāo),沖突且為時存入鏈表。當(dāng)為的次方時,可以最大程度減小沖突。
泛型
本質(zhì) | 類型參數(shù)化,作用就是將類型轉(zhuǎn)換問題從運行時轉(zhuǎn)移到編譯期 |
語法 |
1 定義在類上 class ClassName 2 定義在方法上 3 通配符 > 可限制傳入?yún)?shù),但無法使用 泛型參數(shù) 需類型轉(zhuǎn)換 4 上限 extends T > 接受 T及任意子類 5 下限 super T> 接受 T及任意父類 |
存放數(shù)據(jù)的集合,JAVA中實現(xiàn)Collection和Map的都是集合
Vector:線程安全,基于動態(tài)數(shù)組,增長率為100%,ArrayList為50%
ArrayList:基于動態(tài)數(shù)組,查詢快,增刪慢。
LinkedList:基于鏈表,增刪快,查詢滿。
PS : Hash散列算法 hash & (length-1) 通過Hash散列算法獲取下標(biāo),HashCode沖突且equals為false時存入鏈表。當(dāng)length為2的N次方時,可以最大程度減小HashCode沖突。
HashSet:底層由HashMap實現(xiàn),允許null,唯一,無序
LinkedHashSet:底層由LinkedHashMap實現(xiàn)(適配器模式),不允許null,唯一,按插入順序排序
TreeSet:底層由TreeMap實現(xiàn),不允許null,唯一,按排序規(guī)則排序
映射集合(鍵值對)
HashMap:基于Hash散列算法,鍵唯一,允許null,無序
LinkedHashMap:繼承HashMap,鍵唯一,不允許null,按插入順序排序
TreeMap:鍵唯一,不允許null,按排序規(guī)則排序,底層基于紅黑樹
HashTable:線程安全
ConcurrentHashMap:線程安全,鎖分離
本質(zhì) | 數(shù)據(jù)傳輸 | ||
分類 | 數(shù)據(jù)類型 | 字節(jié)流 字符流 |
|
數(shù)據(jù)流向 | 輸入流 輸出流 |
||
輸入流 | 字節(jié)流 | InputStream | 字節(jié)輸入流接口 |
ByteArrayInputStream | 字節(jié)數(shù)組輸入流 | ||
FileInputStream | 文件輸入流 | ||
BufferedInputStream | 高級流 緩存輸入流 | ||
字符流 | Reader | 字符輸入流接口 | |
InputStreamReader | 轉(zhuǎn)換流 字符輸入流 可指定字符集 | ||
BufferedReader | 高級流 緩存字符輸入流 | ||
輸出流 | 字節(jié)流 | outputStream | 字節(jié)輸出流接口 |
ByteArrayOutputStream | 字節(jié)數(shù)組輸出流 | ||
FileOutputStream | 文件輸出流 | ||
BufferedOutputStream | 高級流 緩存輸出流 | ||
字符流 | Writer | 字符輸出流接口 | |
OutputStreamWriter | 轉(zhuǎn)換流 字符輸出流 可指定字符集 | ||
BufferedWriter | 高級流 緩存字符輸出流 | ||
PrintWriter | 高級流 緩存字符輸出流 自動行刷新 |
多線程 | 并發(fā),合理使用可以提高效率,CPU給每個線程分配時間片(幾十ms),線程有創(chuàng)建與上下文切換的開銷 | |
線程狀態(tài) |
新建 NEW 就緒 RUNNABLE 運行 RUNNING 阻塞 BLOCKED 死亡 DEAD |
|
創(chuàng)建線程 |
1 繼承Thread 2 實現(xiàn)Runnalbe接口 3 實現(xiàn)Callable接口 |
|
線程池 | ||
線程并發(fā) | 三大特性 |
原子性 有序性 可見性 |
同步方案 |
1 volatile 類型修飾符 保證可見性 2 Synchronized 同步代碼塊,可修飾方法 代碼塊 3 ReentrantLock 顯示獲取/釋放鎖 |
|
線程操作 |
1 sleep() 使線程進入阻塞,可指定毫秒值,不釋放鎖 2 wait()/notify()/notifyAll() 等待(阻塞)喚醒(就緒)機制,可指定毫秒值,釋放鎖 3 yield() 使線程進入就緒,不釋放鎖 4 join() 當(dāng)前線程進入阻塞,直到j(luò)oin線程執(zhí)行結(jié)束,進入就緒,釋放鎖 |
反射 | 反射(Reflection)是Java 程序開發(fā)語言的特征之一,它允許運行中的 Java 程序獲取自身的信息,并且可以操作類或?qū)ο蟮膬?nèi)部屬性。 | ||
主要功能 |
1 在運行時判斷一個對象所屬的類 2 在運行時構(gòu)造任意一個類的對象 3 在運行時判斷任意一個類所具有的成員變量和方法(通過反射甚至可以調(diào)用private方法) 4 在運行時調(diào)用任意一個對象的方法 |
||
語法 | 注意: 調(diào)用私有屬性時,需setAccessible(True)跳過java語言訪問檢查,否則拋出IllegalAccessException | ||
獲取Class |
1 Class.forName(className) 2 類名.class 3 對象.getClass() |
||
對象 | 無參構(gòu)造器 |
newInstance() 調(diào)用無參構(gòu)造器創(chuàng)建對象并返回 未定義無參構(gòu)造器時,拋出InstantiationException |
|
獲取構(gòu)造器 |
1 getConstructor([types]) 獲取指定參數(shù)類型列表的公有構(gòu)造器 2 getConstructors() 獲取所有公有構(gòu)造器 3 getDeclaredConstructor([types]) 獲取指定參數(shù)類型列表的構(gòu)造器 4 getDeclaredConstructors() 獲取所有構(gòu)造器 |
||
調(diào)用構(gòu)造器 | 構(gòu)造器對象.newInstance([params]) 創(chuàng)建對象,調(diào)用私有構(gòu)造器時, 請注意 | ||
方法 | 獲取方法 |
1 getMethod(name[,types]) 獲取指定方法名,參數(shù)類型列表的公有方法 2 getMethonds() 獲取所有公有方法,包括繼承類的公有方法 3 getDeclaredMethod(name[,types]) 獲取指定方法名,參數(shù)類型列表的方法,但不包括繼承方法 4 getDeclaredMethods() 獲取所有方法,但不包括繼承方法 |
|
調(diào)用方法 | 方法對象.invoke(obj[,params]) 調(diào)用指定對象方法,調(diào)用私有方法時, 請注意 | ||
字段 | 獲取字段 |
1 getField(name) 獲取指定字段名的公有字段 2 getFields() 獲取所有公有字段,包括繼承類的公有方法 3 getDeclaredField(name) 獲取指定字段名的字段,但不包括繼承字段 4 getDeclaredFields() 獲取所有字段,但不包括繼承字段 |
|
操作字段 |
字段對象.set(obj,val) 設(shè)置指定對象字段屬性 字段對象.get(obj) 獲取指定對象字段屬性 操作私有字段時,請注意 |
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76347.html
摘要:我的是忙碌的一年,從年初備戰(zhàn)實習(xí)春招,年三十都在死磕源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實習(xí)。因為我心理很清楚,我的目標(biāo)是阿里。所以在收到阿里之后的那晚,我重新規(guī)劃了接下來的學(xué)習(xí)計劃,將我的短期目標(biāo)更新成拿下阿里轉(zhuǎn)正。 我的2017是忙碌的一年,從年初備戰(zhàn)實習(xí)春招,年三十都在死磕JDK源碼,三月份經(jīng)歷了阿里五次面試,四月順利收到實習(xí)offer。然后五月懷著忐忑的心情開始了螞蟻金...
摘要:操作之連接以及簡單操作下載對應(yīng)的驅(qū)動包下載創(chuàng)建一個連接類連接主機地址端口號登錄密碼連接服務(wù)器權(quán)限認證連接完成會返回緩存鏈接錯誤查詢所有中的查詢所有的為通配符清除所有的中的是清除所有的的命令如果清理完成,會返回完整的代碼聲明對象測試地址端口密 Java操作Redis之連接以及簡單操作 1.下載對應(yīng)的驅(qū)動包 下載 jedis.jar :https://mvnrepository.com/a...
摘要:是一個由寫的存儲系統(tǒng)。是一個開源的使用語言編寫遵守協(xié)議支持網(wǎng)絡(luò)可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統(tǒng)。Redis是一個開源的使用ANSI C語言編寫、遵...
摘要:是一個由寫的存儲系統(tǒng)。是一個開源的使用語言編寫遵守協(xié)議支持網(wǎng)絡(luò)可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統(tǒng)。Redis是一個開源的使用ANSI C語言編寫、遵...
閱讀 1220·2023-04-25 20:31
閱讀 3730·2021-10-14 09:42
閱讀 1502·2021-09-22 16:06
閱讀 2684·2021-09-10 10:50
閱讀 3536·2021-09-07 10:19
閱讀 1782·2019-08-30 15:53
閱讀 1180·2019-08-29 15:13
閱讀 2826·2019-08-29 13:20