Java 程序員面試筆試寶典, 2/e

何昊,郭晶晶,薛鵬等

  • 出版商: 機械工業
  • 出版日期: 2021-11-01
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 302
  • 裝訂: 平裝
  • ISBN: 7111690389
  • ISBN-13: 9787111690382
  • 相關分類: 面試技巧
  • 立即出貨 (庫存=1)

買這商品的人也買了...

商品描述

本書是一本講解Java程序員面試筆試的實用工具書。
在寫法上,除了講解如何解答Java程序員面試筆試問題以外,
還引入了相關知識點輔以說明,讓讀者能夠更加容易地理解和掌握。
本書囊括Java程序員面試筆試過程中的各類知識點。
在內容廣度上,蒐集了近3年來幾乎所有IT企業針對Java崗位的筆試面試涉及的知識點,
包括但不限於Java核心知識點(容器、多線程和IO等)、Java Web(Struts、MyBatis、Kafka、Spring等)、數據庫,
所選擇知識點均為企業招聘時所考查的知識點。
在講解的深度上,本書由淺入深,詳細分析每一個知識點,並提煉歸納,
同時,引入相關知識點,並對其進行深度剖析,讓讀者不僅能夠理解每個知識點,
還能在遇到相似問題的時候,也能游刃有餘地解決,而這些內容很多是其他同類書籍所沒有的。
書中根據知識點進行分門別類,結構合理,條理清晰,便於讀者進行學習與檢索。
本書是一本計算機相關專業畢業生面試、筆試的求職用書,
同時也適合期望在計算機軟、硬件行業大顯身手的計算機愛好者閱讀。

作者簡介

何昊仙桃人,軟件系統湖北軟件,西安電子科技大學計算機與理論碩士。
C/C++/C#/Java等主流編程語言,具有豐富的項目經驗。酷愛體育鍛煉與歷史,並喜歡嘗試各種新鮮的食物。
現職於某知名科研設計單位,從事軟件研究工作,成功指導開發者進入IT名企工作。
編著有《程序員面試筆試寶》、《Java程序員面試筆寶典》、《程序員典編之道》等書。

目錄大綱

前言
第1部分
Java核心知識
第1章  Java基礎知識/2
1.1  Java程序初始化的順序/2
1.2  構造方法/3
1.3  Java中clone方法的作用/4
1.4  反射/8
1.5  Lambda表達式/11
1.6  多態的實現機制/13
1.7  Overload和Override的區別/14
1.8  abstract class(抽像類)與
interface(接口)的異同/15
1.9  break、continue以及return的
區別/17
1.10  switch使用時的注意事項/17
1.11  volatile的作用/20
1.12  Java基本的數據類型/23
1.13  不可變類/24
1.14  值傳遞與引用傳遞的區別/26
1.15  ++i與i++的區別/29
1.16  字符串創建與存儲的機制/30
1.17  “==”、equals和hashCode的
區別/36
1.18  String、StringBuffer、StringBuilder
和StringTokenizer的區別/37
1.19  finally塊中的代碼什麼時候被
執行/39
1.20  異常處理/42
1.21  常見面試筆試真題/42

第2章  流/52
2.1  輸入輸出流/52
2.1.1  Java IO流的實現機制/52
2.1.2  管理文件和目錄的類/54
2.1.3  Java Socket/55
2.1.4  Java序列化/55
2.2  同步與異步、阻塞與非阻塞/58
2.3  BIO/59
2.4  NIO/60
2.4.1  Buffer/61
2.4.2  Channel/63
2.4.3  Selector/65
2.4.4  AIO/69
2.5  常見面試筆試真題/72

第3章  容器/74
3.1  Collections框架/74
3.2  ArrayList、Vector和LinkedList的
區別/75
3.3  Map/76
3.3.1  HashMap/76
3.3.2  Java8之前的HashMap/78
3.3.3  Java8提供的HashMap/79
3.3.4  TreeMap/80
3.3.5  LinkedhashMap/81
3.3.6  Java8之前的LinkedHashMap/81
3.3.7  Java8中的LinkedHashMap/82
3.3.8  Hashtable/86
3.3.9  WeakHashMap/87
3.3.10  HashMap、HashTable、TreeMap
和WeakHashMap的區別/90
3.3.11  用自定義類型作為HashMap或Hashtable
的key需要注意的問題/90
3.3.12  ConcurrentHashMap/94
3.4  Set/98
3.4.1  HashSet/99
3.4.2  LinkedHashSet/99
3.4.3  TreeSet/100
3.5  BlockingQueue/100
3.5.1  ArrayBlockingQueue/101
3.5.2  LinkedBlockingQueue/103
3.5.3  PriorityBlockingQueue/104
3.5.4  ConcurrentLinkedQueue/106
3.5.5  DelayQueue/108
3.6  Collection 和 Collections的
     區別/110
3.7  迭代器/111
3.8  並行數組/112
3.9  常見面試筆試真題/113

第4章  多線程/121
4.1  線程與進程/121
4.2  同步和異步有什麼區別/122
4.3  如何實現Java多線程/122
4.4  run與start的區別/125
4.5  多線程同步/126
4.6  Lock的分類/129
4.7  synchronized與Lock的異同/135
4.8  sleep與wait的區別/139
4.9  終止線程的方法/140
4.10  死鎖/141
4.11  守護線程/141
4.12  join方法的作用/142
4.13  如何捕獲一個線程拋出的
      異常/143
4.14  線程池/145
4.14.1  Executor接口/145
4.14.2  ExecutorService/146
4.14.3  ThreadPoolExecutor/147
4.14.4  線程池的使用方法/149
4.15  ThreadLocal/152
4.15.1  應用實例/152
4.15.2  原理解析/153
4.15.3  改進/155
4.16  Latch/155
4.17  Barrier/156
4.18  Java中的Fork/Join框架/157
4.19  CAS/162
4.20  線程調度與優先級/165
4.21  常見面試筆試真題/166

第5章  內存分配/169
5.1  JVM內存劃分/169
5.2  運行時內存劃分/171
5.2.1  年輕代、老年代與永久代/171
5.2.2  元空間MetaSpace/172
5.3  垃圾回收/173
5.3.1  垃圾回收算法/173
5.3.2  串行垃圾回收/175
5.3.3  並行垃圾回收/176
5.3.4  並發標記清理回收/176
5.3.5  G1/178
5.3.6  Shenandoah/180
5.4  Java平台與內存管理/180
5.4.1  為什麼說Java是平台獨立性
      語言/180
5.4.2  Java平台與其他語言平台的區別/181
5.4.3  JVM加載class文件的原理機制/181
5.4.4  Java是否存在內存洩漏問題/182
5.4.5  Java中的堆和棧的區別/184
5.4.6  JVM常用的參數/185
5.5  常見面試筆試真題/187

第6章  設計模式/188
6.1  設計模式中的原則/188
6.1.1  單一職責原則/188
6.1.2  開放封閉原則/189
6.1.3  里氏替換原則/191
6.1.4  依賴倒置原則/192
6.1.5  接口隔離原則/193
6.1.6  合成複用原則/194
6.1.7  迪米特法則/195
6.2  單例模式/195
6.3  工廠模式/196
6.4  適配器模式/197
6.5  觀察者模式/198
6.6  常見面試筆試真題/199

第2部分
Java Web核心知識
第7章  Struts/203
7.1  Struts框架/203
7.2  Struts框架響應客戶請求的工作
     流程/205
7.3  Struts框架的數據驗證/205
7.4  Form Bean的表單驗證流程/205
7.5  元素包含的屬性/206
7.6  ActionForm Bean的作用/206
7.7  Struts2的請求處理流程/206
7.8  Struts2中的攔截器/207
7.9  Struts2國際化/207
7.10  常見面試筆試真題/208

第8章  MyBatis/209
8.1  MyBatis緩存的基本概念/209
8.2  MyBatis分頁/210