![](/c49/99/10038641795033.jpg)
店鋪:機械工業出版社官方旗艦店 出版社:機械工業出版社 ISBN:9787111690382 商品編碼:10038641795033 品牌:機械工業出版社(CMP) 頁數:302 字數:479000 審圖號:9787111690382 作者:何昊
"![baecf198635367d9.jpg](https://img10.360buyimg.com/cms/jfs/t1/180445/28/6295/377762/60b0bd82E6c4ef32e/baecf198635367d9.jpg) 內容簡介 本書是一本講解Java程序員面試筆試的實用工具書。在寫法上,除了講解如何解答Java程序員面試筆試問題以外,還引入了相關知識點輔以說明,讓讀者能夠更加容易地理解和掌握。 本書囊括Java程序員面試筆試過程中的各類知識點。在內容廣度上,搜集了近3年來幾乎所有IT企業針對Java崗位的筆試面試涉及的知識點,包括但不限於Java核心知識點(容器、多線程和IO等)、Java Web(Struts、MyBatis、Kafka、Spring等)、數據庫,所選擇知識點均為企業招聘時所考查的知識點。在講解的深度上,本書由淺入深,詳細分析每一個知識點,並提煉歸納,同時,引入相關知識點,並對其進行深度剖析,讓讀者不僅能夠理解每個知識點,還能在遇到相似問題的時候,也能遊刃有餘地解決,而這些內容很多是其他同類書籍所沒有的。書中根據知識點進行分門別類,結構合理,條理清晰,便於讀者進行學習與檢索。 本書是一本計算機相關專業畢業生面試、筆試的求職用書,同時也適合期望在計算機軟、硬件行業大顯身手的計算機愛好者閱讀。
目錄 前言 *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&nbs空間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 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 8.3 MyBatis的查詢類型/210 8.4 MyBatis的延時加載/211 8.5 常見面試筆試真題/212 第9章 Redis/215 9.1 Redis的基本概念/215 9.2 Memcache與Redis的區別/216 9.3 Redis把所有數據放到內存中的 原因/217 9.4 Redis實現分布式鎖的方式/218 9.5 Redis高性能的原因/218 9.6 Redis持久化/219 9.7 Redis集群/219 9.8 Redis的Key過期的刪除策略/220 9.9 緩存穿透/220 9.10 Redis哨兵(Sentinel)/221 9.11 Redis的Pipeline(管道)/221 9.12 Redis的String類型的實現 原理/222 9.13 常見面試筆試真題/223 *10章 Kafka/227 10.1 Kafka的消息傳遞模式/227 10.2 Kafka 中的組件/228 10.3 Kafka的消息生產者/230 10.3.1 Kafka生產者的運行的流程/231 10.3.2 Kafka生產者分區/232 10.3.3 Kafka消息發送(ACK)機制/232 10.3.4 副本的同步復制和異步復制/232 10.4 Kafka的消息消費者/233 10.4.1 設計原理/233 10.4.2 監聽原理/234 10.4.3 API/234 10.5 Kafka的Topic和Partition/235 10.5.1 主題Topic/235 10.5.2 分片Partition/235 10.5.3 日志/236 10.5.4 消息副本Replications/237 10.6 流處理/239 10.7 Kafka吞吐量及消息發送/240 10.8 Kafka文件高效存儲設計原理/240 10.9 其他消息隊列介紹/241 10.10 常見面試筆試真題/242 *11章 Spring/248 11.1 Spring基礎/248 11.1.1 Spring的基本概念/248 11.1.2 Spring 中的模塊/249 11.1.3 Spring框架的設計模式/250 11.1.4 IOC/253 11.1.5 Spring IOC容器/255 11.1.6 AOP的實現方法/256 11.1.7 Spring AOP 的注解/259 11.1.8 Spring Bean的基本概念/260 11.1.9 Spring的注解/262 11.1.10 Spring Bean的配置方式/262 11.1.11 Spring Bean的注入方式/263 11.1.12 Spring 支持的數據庫類型/264 11.2 Spring Boot/265 11.2.1 Spring Boot的優勢/265 11.2.2 Spring Boot 中的 Starter/265 11.2.3 Spring、Spring Boot 和 Spring Cloud 的關繫/265 11.2.4 Spring Boot 的配置文件格式/266 11.2.5 Spring Boot 配置加載順序/266 11.2.6 Spring Boot 如何定義多套不同環境 配置/267 11.2.7 Spring Boot的自動配置的實現 方式/267 11.2.8 Spring Boot Thin jar和Fat jar的 區別/268 11.3 Spring MVC/268 11.3.1 Spring MVC 框架/268 11.3.2 Spring MVC 的重要組件/269 11.3.3 DispatcherServlet 的工作流程/269 11.3.4 WebApplicationContext 的作用/269 11.3.5 Spring MVC常用的注解/270 11.4 Spring Data/270 11.5 Spring Cloud/271 11.5.1 微服務/271 11.5.2 Ribbon和 OpenFeign、RestTemplate 的關繫與區別/272 11.5.3 Eureka/272 11.5.4 服務雪崩、服務熔斷和服務 降級/273 11.5.5 Spring Cloud config 配置加密的 方式/274 11.6 Dubbo框架/274 11.6.1 Dubbo的發展歷程和應用場景/274 11.6.2 Dubbo原理/275 11.6.3 Dubbo的整體架構設計分層/278 11.6.4 Dubbo支持的協議/278 11.6.5 Dubbo的注冊中心/278 11.6.6 Dubbo容錯方案/279 11.6.7 Dubbo負載均衡/280 11.6.8 Dubbo核心的配置/280 11.6.9 Sping項目與Dubbo的整合/280 11.6.10 Dubbo的服務降級/281 11.7 常見面試筆試真題/281 第3部分 其他知識點 *12章 數據庫/290 12.1 SQL/290 12.2 內連接與外連接/292 12.3 事務/292 12.4 存儲過程/294 12.5 範式/294 12.6 觸發器/295 12.7 遊標/296 12.8 數據庫日志/297 12.9 UNION和UNION ALL/297 12.10 視圖/298 12.11 三級封鎖協議/298 12.12 索引/299 12.13 常見面試筆試真題/300
" |