Java面試一戰到底(基礎卷)

Java面試一戰到底(基礎卷)

《Java面試一戰到底(基礎卷)》是清華大學出版社於2020年出版的書籍。本書立足於當前主流網際網路企業對Java開發人員的技術要求,分析並總結面試中常見的面試考點以提升Java開發人員的技術實力。

基本介紹

  • 中文名:Java面試一戰到底(基礎卷)
  • 作者:周冠亞
  • 出版社:清華大學出版社
  • ISBN:9787302564362 
內容簡介,目錄,作者簡介,

內容簡介

通過結合作者和行業內多位閱歷豐富的Java開發人員、面試官和獵頭的工作經驗,總結出高效的面試技巧,助力Java開發人員早日走出面試困惑期,收穫滿意的工作機會和豐厚的薪資。本書第1章講解Java語言開發環境的搭建過程。第2章和第3章講解Java開發人員面試中常見的數據結構和算法考點。第4章講解Java開發人員面試中常見的Java基礎相關的考點。第5章和第6章講解Java開發人員面試中常見的並發編程考點。第7章和第8章講解Java開發人員可能會面臨的面試形式和應對面試所需的技巧。 本書內容翔實,貼近面試實踐,考點講解詳盡,適用於所有Java語言面試候選人、分散式系統開發愛好者以及計算機相關專業的學生閱讀,也可供具有一到三年Java開發經驗的讀者夯實基礎,提升開發技術。

目錄

第一篇 準備開發環境
第1章 開發環境搭建 1
1.1 Java語言版本構成及特性 1
1.2 JDK的安裝 3
1.3 IntelliJ IDEA的安裝 4
1.4 Apache Maven的安裝 5
1.5 IntelliJ IDEA外掛程式安裝 5
1.6 小結 6
第二篇 數據結構和算法
第2章 數據結構 7
2.1 線性表 8
2.1.1 線性表的定義 8
2.1.2 線性表的類型 8
2.1.3 線性表的抽象類型的定義 8
2.1.4 線性表常見面試考點 9
2.2 順序表 10
2.2.1 順序表添加元素 10
2.2.2 順序表查找元素 10
2.2.3 順序表刪除元素 11
2.2.4 順序表的實現 11
2.2.5 順序表常見面試考點 15
2.3 單鍊表 15
2.3.1 單鍊表添加元素 16
2.3.2 單鍊表查找元素 16
2.3.3 單鍊表刪除元素 17
2.3.4 單鍊表的實現 17
2.3.5 單鍊表常見面試考點 23
2.4 雙向鍊表 23
2.4.1 雙向鍊表添加元素 24
2.4.2 雙向鍊表查找元素 24
2.4.3 雙向鍊表刪除元素 25
2.4.4 雙向循環鍊表 25
2.4.5 雙向鍊表常見面試考點 26
2.5 棧 26
2.5.1 順序棧 27
2.5.2 鏈式棧 31
2.5.3 棧常見面試考點 34
2.6 佇列 34
2.6.1 順序佇列 35
2.6.2 ...
2.6.3 鏈式佇列 43
2.6.4 優先佇列 46
2.6.5 佇列常見面試考點 50
2.7 樹 50
2.7.1 樹結構的相關概念 51
2.7.2 二叉樹 52
2.7.3 斜樹 52
2.7.4 滿二叉樹 53
2.7.5 完全二叉樹 53
2.7.6 二叉樹存儲結構 54
2.7.7 二叉樹的遍歷 56
2.7.8 二叉排序樹 56
2.7.9 AVL樹 64
2.7.10 2-3-4樹 79
2.7.11 紅黑樹 86
2.7.12 哈夫曼樹 106
2.7.13 樹常見面試考點 114
2.8 樹和森林 115
2.8.1 普通樹轉化為二叉樹 115
2.8.2 森林轉化為二叉樹 116
2.8.3 樹的遍歷 117
2.8.4 森林的遍歷 117
2.8.5 樹和森林常見面試考點 117
2.9 圖 118
2.9.1 圖的相關概念 118
2.9.2 圖的鄰接矩陣存儲結構 119
2.9.3 圖的鄰接表存儲結構 122
2.9.4 圖的十字鍊表存儲結構 126
2.9.5 圖的遍歷 132
2.9.6 最小生成樹 136
2.9.7 Prim算法求解最小生成樹 137
2.9.8 Kruskal算法求解最小生成樹 146
2.9.9 Dijkstra算法求解最短路徑 152
2.9.10 圖的常見面試考點 159
第3章 算法 160
3.1 字元串相關算法 160
3.1.1 驗證回文字元串 160
3.1.2 分割回文字元串 162
3.1.3 單詞拆分 164
3.1.4 前綴樹 167
3.1.5 有效的字母異位詞 170
3.1.6 無重複字元的最長子串 172
3.1.7 電話號碼的字母組合 174
3.1.8 串聯所有單詞的子串 176
3.1.9 字元串相關算法常見面試考點 179
3.2 數組相關算法 179
3.2.1 乘積最大連續子序列 179
3.2.2 求眾數 181
3.2.3 旋轉數組 183
3.2.4 移動零 186
3.2.5 求兩個數組的交集 187
3.2.6 遞增的三元子序列 189
3.2.7 搜尋二維矩陣 191
3.2.8 除自身以外數組的乘積 194
3.2.9 數組相關算法常見面試考點 197
3.3 排序算法 197
3.3.1 冒泡排序算法 197
3.3.2 選擇排序算法 199
3.3.3 插入排序算法 201
3.3.4 希爾排序算法 203
3.3.5 歸併排序算法 206
3.3.6 快速排序算法 208
3.3.7 堆排序算法 213
3.3.8 計數排序算法 219
3.3.9 桶排序算法 221
3.3.10 基數排序算法 224
3.3.11 排序算法常見面試考點 227
第三篇 Java基礎
第4章 Java中的集合框架 229
4.1 集合框架概述 229
4.2 ArrayList 230
4.2.1 ArrayList類的使用方式 230
4.2.2 ArrayList類的聲明 232
4.2.3 ArrayList類的屬性 233
4.2.4 ArrayList類的構造器 233
4.2.5 ArrayList類添加元素的方法 234
4.2.6 ArrayList類查詢元素方法 238
4.2.7 ArrayList類更新元素方法 240
4.2.8 ArrayList類刪除元素方法 240
4.2.9 ArrayList類批量方法 242
4.2.10 ArrayList類導出數組方法 244
4.2.11 ArrayList類排序方法 245
4.2.12 ArrayList類的疊代器 247
4.2.13 ArrayList常見面試考點 253
4.3 LinkedList 253
4.3.1 LinkedList類的使用方式 253
4.3.2 LinkedList類的聲明 255
4.3.3 LinkedList類的屬性 256
4.3.4 LinkedList類的內部類Node 256
4.3.5 LinkedList類的構造器 257
4.3.6 LinkedList類添加元素方法 257
4.3.7 LinkedList類查詢元素的方法 260
4.3.8 LinkedList類更新元素方法 261
4.3.9 LinkedList類刪除元素的方法 262
4.3.10 LinkedList類批量方法 263
4.3.11 LinkedList類的疊代器 265
4.3.12 LinkedList常見面試考點 269
4.4 Deque 270
4.4.1 Deque類的使用方式 270
4.4.2 Queue接口 271
4.4.3 Deque接口 272
4.4.4 LinkedList類的addFirst()方法 276
4.4.5 LinkedList類的addLast()方法 276
4.4.6 LinkedList類的offerFirst()方法 277
4.4.7 LinkedList類的offerLast()方法 277
4.4.8 LinkedList類的removeFirst()方法 278
4.4.9 LinkedList類的removeLast()方法 279
4.4.10 LinkedList類的pollFirst()方法 280
4.4.11 LinkedList類的pollLast()方法 280
4.4.12 LinkedList類的getFirst()方法 280
4.4.13 LinkedList類的getLast()方法 281
4.4.14 LinkedList類的peekFirst()方法 281
4.4.15 LinkedList類的peekLast()方法 281
4.4.16 LinkedList類的add()方法 282
4.4.17 LinkedList類的offer()方法 282
4.4.18 LinkedList類的remove()方法 282
4.4.19 LinkedList類的poll()方法 283
4.4.20 LinkedList類的element()方法 283
4.4.21 LinkedList類的peek()方法 283
4.4.22 LinkedList類的removeFirstOccurrence()方法 284
4.4.23 LinkedList類的removeLastOccurrence()方法 284
4.4.24 LinkedList類的push()方法 285
4.4.25 LinkedList類的pop()方法 286
4.4.26 Deque常見面試考點 286
4.5 PriorityQueue 286
4.5.1 PriorityQueue類的使用方式 286
4.5.2 PriorityQueue類的聲明 287
4.5.3 PriorityQueue類的屬性 288
4.5.4 PriorityQueue類的構造器 289
4.5.5 PriorityQueue類的add()方法 294
4.5.6 PriorityQueue類的offer()方法 294
4.5.7 PriorityQueue類的poll()方法 297
4.5.8 PriorityQueue類的peek()方法 297
4.5.9 PriorityQueue常見面試考點 298
4.6 HashMap 298
4.6.1 HashMap類的使用方式 298
4.6.2 Entry接口 300
4.6.3 Map接口 301
4.6.4 HashMap類的聲明 307
4.6.5 HashMap類的屬性 307
4.6.6 HashMap靜態內部類Node 309
4.6.7 HashMap靜態內部類TreeNode 311
4.6.8 HashMap的存儲結構 312
4.6.9 HashMap的類構造器 312
4.6.10 HashMap類的put()方法 313
4.6.11 HashMap類的hash()方法 314
4.6.12 HashMap類的putVal()方法 314
4.6.13 HashMap類的resize()方法 318
4.6.14 HashMap類的putTreeVal()方法 323
4.6.15 HashMap類的treeifyBin()方法 324
4.6.16 HashMap類的remove()方法 330
4.6.17 HashMap類的get()方法 334
4.6.18 HashMap常見面試考點 335
4.7 LinkedHashMap 335
4.7.1 LinkedHashMap類的使用方式 336
4.7.2 LinkedHashMap類的聲明 339
4.7.3 LinkedHashMap靜態內部類Entry 339
4.7.4 LinkedHashMap類的屬性 339
4.7.5 LinkedHashMap類的構造器 340
4.7.6 LinkedHashMap類的put()方法 341
4.7.7 LinkedHashMap類的get()方法 345
4.7.8 LinkedHashMap類的getOrDefault()方法 345
4.7.9 LinkedHashMap類的containsValue()方法 346
4.7.10 LinkedHashMap類的removeEldestEntry()方法 346
4.7.11 LinkedHashMap類常見面試考點 346
4.8 TreeMap 346
4.8.1 TreeMap類的使用方式 347
4.8.2 TreeMap類的聲明 348
4.8.3 TreeMap靜態內部類Entry 352
4.8.4 TreeMap類的屬性 353
4.8.5 TreeMap類的構造器 354
4.8.6 TreeMap類的putAll()方法 355
4.8.7 TreeMap類的buildFromSorted()方法 355
4.8.8 TreeMap類的put()方法 358
4.8.9 TreeMap類的get()方法 361
4.8.10 TreeMap類的remove()方法 362
4.8.11 TreeMap類的firstKey()方法 365
4.8.12 TreeMap類的lastKey()方法 365
4.8.13 TreeMap類常見面試考點 366
4.9 HashSet 366
4.9.1 HashSet類的使用方式 366
4.9.2 HashSet類的聲明 367
4.9.3 HashSet類的屬性 367
4.9.4 HashSet類的構造器 368
4.9.5 HashSet類的add()方法 369
4.9.6 HashSet類的remove()方法 369
4.9.7 HashSet類的contains()方法 369
4.9.8 HashSet類的iterator()方法 370
4.9.9 HashSet類常見面試考點 372
4.10 LinkedHashSet 372
4.10.1 LinkedHashSet類的使用方式 372
4.10.2 LinkedHashSet類的聲明 373
4.10.3 LinkedHashSet類構造器 373
4.10.4 LinkedHashSet類常見面試考點 374

作者簡介

周冠亞,上海交通大學軟體工程碩士,資深Java開發工程師。先後就職于飛牛網、萬達網路科技有限公司、上海2345網路科技有限公司、美團點評,目前就職於上海某知名電子商務公司,主要從事後端Java開發工作,擁有豐富的軟體開發經驗,熟悉Java、高並發、微服務、大數據及相關軟體架構,已出版《Spring 5企業級開發實戰》(清華大學出版社,2018年)。

相關詞條

熱門詞條

聯絡我們