-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
瘋狂Java面試講義 數據結構、算法與技術素養 版權信息
- ISBN:9787121409370
- 條形碼:9787121409370 ; 978-7-121-40937-0
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>>
瘋狂Java面試講義 數據結構、算法與技術素養 本書特色
適讀人群 :-1~3年的Java開發人員,計算機及相關專業本科及研究生1. 針對技術痛點,補齊面試短板本書**部分的Java內存管理和第三部分的Java算法實現,可以說是絕大多數初中級程序員以前注意不夠的地方,也是限制其職業提升的主要短板,認真掌握這兩部分內容,不僅能有效地解決技術痛點,也能迅速提高面試成功率,敲開進入大廠的大門。 2.從實踐中來,回歸實踐本身無論是本書第二部分的避“坑”指南,還是本書第四部分的實用心法,它們都是實踐性非常強的內容,并不是某個具體的理論知識點,這些內容不僅能讓開發者終身受益,而且,如果開發者能在面試中自信、從容地介紹它們,一定會讓面試官刮目相看。 3. 贈1500分鐘Java講解視頻,72道Java后端和微服務面試題,本書相關代碼。獲取方式見封面。 4.加入作者的技術群交流學習。
瘋狂Java面試講義 數據結構、算法與技術素養 內容簡介
本書歸納了Java學習者、工作者在工作和面試中很容易遭遇的技術短板和算法基礎,本書把Java編程中的要點、難點和Java程序員推薦的算法基礎知識收集在一起,旨在幫助讀者有針對性地提高這些看似“司空見慣”的基本功。本書內容分為四個部分,其中部分主要介紹Java內存管理,這部分是大多數Java程序員很容易忽略的地方――因為Java不像C語言,而且Java提供了垃圾回收機制,因此導致許多Java程序員對內存管理重視不夠;第二部分主要介紹Java編程過程中各種常見的陷阱,這些陷阱有的來自李剛老師早年的痛苦經歷,有的來自他的眾多學生的痛苦經歷,都是Java程序員在編程過程中的“前車之鑒”,希望讀者能引以為戒;第三部分主要介紹學習Java推薦的算法基礎知識,包括常用數據結構的各種算法實現,這部分內容是大多數Java程序員重視不夠的地方,也是大廠面試的常考面試題;第四部分主要介紹Java程序開發的方法、經驗等,它們是李剛老師多年的實際開發經驗、培訓經驗的總結,符合初學者的習慣,更能滿足初學者的需要,因此掌握這些開發方法、經驗可以更有效地進行開發。
瘋狂Java面試講義 數據結構、算法與技術素養 目錄
第1章 數組及其內存管理
1.1 數組初始化
1.1.1 Java數組是靜態的
1.1.2 數組一定要初始化嗎
1.1.3 基本類型數組的初始化
1.1.4 引用類型數組的初始化
1.2 使用數組
1.2.1 數組元素就是變量
1.2.2 沒有多維數組
1.3 本章小結
第2章 對象及其內存管理
2.1 實例變量和類變量
2.1.1 實例變量和類變量的屬性
2.1.2 實例變量的初始化時機
2.1.3 類變量的初始化時機
2.2 父類構造器
2.2.1 隱式調用和顯式調用
2.2.2 訪問子類對象的實例變量
2.2.3 調用被子類重寫的方法
2.3 父、子實例的內存控制
2.3.1 繼承成員變量和繼承方法的區別
2.3.2 內存中子類實例
2.3.3 父、子類的類變量
2.4 final修飾符
2.4.1 final修飾的變量
2.4.2 執行“宏替換”的變量
2.4.3 final方法不能被重寫
2.4.4 內部類中的局部變量
2.5 本章小結
第3章 常見Java集合的實現細節
3.1 Set和Map
3.1.1 Set和Map的關系
3.1.2 HashMap和HashSet
3.1.3 TreeMap和TreeSet
3.2 Map和List
3.2.1 Map的values()方法
3.2.2 Map和List的關系
3.3 ArrayList和LinkedList
3.3.1 Vector和ArrayList的區別
3.3.2 ArrayList和LinkedList的實現差異
3.3.3 ArrayList和LinkedList的性能分析及適用場景
3.4 Iterator迭代器
3.4.1 Iterator實現類與迭代器模式
3.4.2 迭代時刪除指定元素
3.5 本章小結
第4章 Java的內存回收
4.1 Java引用的種類
4.1.1 對象在內存中的狀態
4.1.2 強引用
4.1.3 軟引用
4.1.4 弱引用
4.1.5 虛引用
4.2 Java的內存泄漏
4.3 垃圾回收機制
4.3.1 垃圾回收的基本算法
4.3.2 堆內存的分代回收
4.3.3 與垃圾回收相關的附加選項
4.3.4 常見的垃圾回收器
4.4 內存管理小技巧
4.4.1 盡量使用直接量
4.4.2 使用StringBuilder和StringBuffer進行字符串連接
4.4.3 盡早釋放無用對象的引用
4.4.4 盡量少用靜態變量
4.4.5 避免在經常調用的方法、循環中創建Java對象
4.4.6 緩存經常使用的對象
4.4.7 避免使用finalize方法
4.4.8 考慮使用SoftReference
4.5 本章小結
第5章 表達式中的陷阱
5.1 關于字符串的陷阱
5.1.1 JVM對字符串的處理
5.1.2 不可變的字符串
5.1.3 字符串比較
5.2 表達式類型的陷阱
5.2.1 表達式類型的自動提升
5.2.2 復合賦值運算符的陷阱
5.2.3 二進制整數的陷阱
5.3 輸入法導致的陷阱
5.4 注釋字符必須合法
5.5 轉義字符的陷阱
5.5.1 慎用字符的Unicode轉義形式
5.5.2 中止行注釋的轉義字符
5.6 泛型可能引起的錯誤
5.6.1 原始類型變量的賦值
5.6.2 原始類型帶來的擦除
5.6.3 創建泛型數組的陷阱
5.7 正則表達式的陷阱
5.8 多線程的陷阱
5.8.1 不要調用run方法
5.8.2 靜態的同步方法
5.8.3 靜態初始化塊啟動新線程執行初始化
5.8.4 注意多線程執行環境
5.9 本章小結
第6章 流程控制的陷阱
6.1 switch語句的陷阱
6.1.1 default分支永遠會執行嗎
6.1.2 break的重要性
6.1.3 switch支持的數據類型
6.2 標簽引起的陷阱
6.3 if語句的陷阱
6.3.1 else隱含的條件
6.3.2 小心空語句
6.4 循環體的花括號
6.4.1 什么時候可以省略花括號
6.4.2 省略花括號的危險
6.5 for循環的陷阱
6.5.1 分號惹的禍
6.5.2 小心循環計數器的值
6.5.3 浮點數作為循環計數器
6.6 foreach循環的循環計數器
6.7 流式編程的陷阱
6.7.1 map與flatMap的區別
6.7.2 collect與map的區別
6.8 本章小結
第7章 面向對象的陷阱
7.1 instanceof運算符的陷阱
7.2 構造器的陷阱
7.2.1 構造器之前的void
7.2.2 構造器創建對象嗎
7.2.3 無限遞歸的構造器
7.3 持有當前類的實例
7.4 到底調用哪個重載的方法
7.5 方法重寫的陷阱
7.5.1 重寫private方法
7.5.2 重寫其他訪問權限的方法
7.6 非靜態內部類的陷阱
7.6.1 非靜態內部類的構造器
7.6.2 非靜態內部類不能擁有靜態成員
7.6.3 非靜態內部類的子類
7.7 static關鍵字
7.7.1 靜態方法屬于類
7.7.2 靜態內部類的限制
7.8 native方法的陷阱
7.9 本章小結
第8章 異常處理的陷阱
8.1 正確關閉資源的方式
8.1.1 傳統關閉資源的方式
8.1.2 使用自動關閉資源的try語句
8.2 finally塊的陷阱
8.2.1 finally的執行規則
8.2.2 finally塊和方法返回值
8.3 catch塊的用法
8.3.1 catch塊的順序
8.3.2 不要用catch代替流程控制
8.3.3 應該只catch可能拋出的異常
8.3.4 做點實際的修復
8.4 繼承得到的異常
8.5 本章小結
第9章 線性表
9.1 線性表概述
9.1.1 線性表的定義及邏輯結構
9.1.2 線性表的基本操作
9.2 順序存儲結構
9.3 鏈式存儲結構
9.3.1 單鏈表上的基本運算
9.3.2 循環鏈表
9.3.3 雙向鏈表
9.4 線性表的分析
9.4.1 線性表的實現分析
9.4.2 線性表的功能
9.5 本章小結
第10章 棧和隊列
10.1 棧
10.1.1 棧的基本定義
10.1.2 棧的常用操作
10.1.3 棧的順序存儲結構及實現
10.1.4 棧的鏈式存儲結構及實現
10.1.5 Java集合中的棧
10.2 隊列
10.2.1 隊列的基本定義
10.2.2 隊列的常用操作
10.2.3 隊列的順序存儲結構及實現
10.2.4 循環隊列
10.2.5 隊列的鏈式存儲結構及實現
10.2.6 Java集合中的隊列
10.3 雙端隊列
10.4 本章小結
第11章 樹和二叉樹
11.1 樹的概述
11.1.1 樹的定義和基本術語
11.1.2 樹的基本操作
11.1.3 父節點表示法
11.1.4 子節點鏈表示法
11.2 二叉樹
11.2.1 二叉樹的定義和基本概念
11.2.2 二叉樹的基本操作
11.2.3 二叉樹的順序存儲
11.2.4 二叉樹的二叉鏈表存儲
11.2.5 二叉樹的三叉鏈表存儲
11.3 遍歷二叉樹
11.3.1 先序遍歷
11.3.2 中序遍歷
11.3.3 后序遍歷
11.3.4 廣度優先(按層)遍歷
11.4 轉換方法
11.4.1 森林、樹和二叉樹的轉換
11.4.2 樹的鏈表存儲
11.5 哈夫曼樹
11.5.1 哈夫曼樹的定義和基本概念
11.5.2 創建哈夫曼樹
11.5.3 哈夫曼編碼
11.6 排序二叉樹
11.7 紅黑樹
11.7.1 插入操作
11.7.2 刪除操作
11.8 本章小結
第12章 常見的內部排序
12.1 排序的基本概念
12.1.1 排序概述
12.1.2 內部排序的分類
12.2 選擇排序法
12.2.1 直接選擇排序
12.2.2 堆排序
12.3 交換排序
12.3.1 冒泡排序
12.3.2 快速排序
12.4 插入排序
12.4.1 直接插入排序
12.4.2 折半插入排序
12.4.3 Shell排序
12.5 歸并排序
12.6 桶式排序
12.7 基數排序
12.8 本章小結
第13章 程序開發經驗談
13.1 扎實的基本功
13.1.1 快速的輸入能力
13.1.2 編程實現能力
13.1.3 快速排錯
13.2 程序開發之前
13.2.1 分析軟件的組件模型
13.2.2 建立軟件的數據模型
13.3 厘清程序的實現流程
13.3.1 各組件如何通信
13.3.2 人機交互的實現
13.3.3 復雜算法的分析
13.4 編寫開發文檔
13.4.1 繪制建模圖、流程圖
13.4.2 提供簡要說明
13.4.3 編寫偽碼實現
13.5 編碼實現和開發心態
13.5.1 開發是復雜的
13.5.2 開發過程是漫長的
13.6 本章小結
第14章 程序調試經驗談
14.1 程序的可調試性
14.1.1 增加注釋
14.1.2 使用日志
14.2 程序調試的基本方法
14.2.1 借助于編譯器的代碼審查
14.2.2 跟蹤程序執行流程
14.2.3 斷點調試
14.2.4 隔離調試
14.2.5 錯誤重現
14.3 記錄常見錯誤
14.3.1 常見異常可能的錯誤原因
14.3.2 常見運行時異常可能的錯誤原因
14.4 程序調試的整體思路
14.4.1 分段調試
14.4.2 分模塊調試
14.5 調試心態
14.5.1 誰都會出錯
14.5.2 調試比寫程序更費時
14.6 本章小結
第15章 IDE工具心法談
15.1 何時開始利用IDE工具
15.2 IDE工具概述
15.2.1 IDE工具的基本功能
15.2.2 常見的Java IDE工具
15.3 項目管理
15.3.1 建立項目
15.3.2 自動編譯
15.3.3 自動部署、運行
15.4 代碼管理
15.4.1 代碼生成器
15.4.2 代碼提示
15.4.3 自動代碼補齊
15.4.4 實時錯誤提示
15.5 項目調試
15.5.1 設置斷點
15.5.2 單步調試
15.5.3 步入、步出
15.6 團隊協作功能
15.7 本章小結
第16章 軟件測試經驗談
16.1 軟件測試概述
16.1.1 軟件測試的概念和目的
16.1.2 軟件測試的分類
16.1.3 開發活動和測試活動
16.1.4 常見的Bug管理工具
16.2 單元測試
16.2.1 單元測試概述
16.2.2 單元測試的邏輯覆蓋
16.2.3 JUnit介紹
16.2.4 JUnit 5.x的用法
16.3 系統測試和自動化測試
16.3.1 系統測試概述
16.3.2 自動化測試
16.3.3 常見的自動化測試工具
16.4 性能測試
16.4.1 性能測試概述
16.4.2 性能測試相關概念
16.4.3 常見的性能測試工具
16.5 本章小結
瘋狂Java面試講義 數據結構、算法與技術素養 作者簡介
李剛,十余年軟件開發從業經驗,瘋狂軟件教育中心教學總監。瘋狂Java實訓營創始人,瘋狂Java體系原創圖書作者。CSDN特邀講師。培訓的學生已在騰訊、阿里、華為、IBM、網易等名企就職。國內知名高端IT技術圖書作家,已出版《瘋狂Java講義》《瘋狂Python講義》《瘋狂Android講義》《輕量級Java EE企業應用實戰》《瘋狂前端開發講義》《瘋狂HTML5/CSS3/JavaScript講義》等著作。其中瘋狂Java體系圖書均已沉淀多年,贏得極高的市場認同,多次重印,多部著作印刷數量超過10萬冊,并被多所“985”“211”院校選作教材,部分圖書已被翻譯成繁體中文版,授權到寶島臺灣。
- >
月亮與六便士
- >
莉莉和章魚
- >
新文學天穹兩巨星--魯迅與胡適/紅燭學術叢書(紅燭學術叢書)
- >
龍榆生:詞曲概論/大家小書
- >
推拿
- >
唐代進士錄
- >
月亮虎
- >
中國歷史的瞬間