Java是編程世界備受歡迎的語言,雖然Java技術在運用中已趨成熟,但招聘市場的Java開發(fā)人才卻仍然供不應求。《Java核心技術及面試指南》一書,從Java核心技術的開發(fā)和面試指南的解析兩個方面展開,包括基本語法中常用技術點的精講、集合類與常用的數(shù)據(jù)結(jié)構(gòu)分析、異常處理與IO操作、多線程與并發(fā)編程、虛擬機內(nèi)存優(yōu)化技巧等內(nèi)容,同時教會讀者如何通過簡歷和面試找到好工作。本書既適合在公司中從事Java編程和開發(fā)工作的人員學習,也適合作為大中專職業(yè)院校畢業(yè)生的學習用書,特別有助于想要加強專業(yè)技術提高工作效率、通過簡歷和面試找到好工作的人群。
(1)全面:本書作者團隊陣容強大,既有架構(gòu)師、培訓師,又有面試官,分別從自身經(jīng)驗出發(fā)講解工作中遇到的痛點。
(2)實用:本書將相關知識的系統(tǒng)整合,符合現(xiàn)在Java的主流應用,拒絕全面不實用;本書知識點主要圍繞技術升級和面試技巧展開,讓你在升級專業(yè)知識的同時更能順利通過面試。
(3)豐富:本書附帶Java Core常用知識點的視頻和面試題,并且內(nèi)容會不斷更新。
金華,上海張江信息技術專修學院副院長,上海師范大學兼職教授,軟件與信息技術講師,長期從事軟件與信息技術職業(yè)技能培訓與職業(yè)規(guī)劃工作。
胡書敏,資深架構(gòu)師,《Java Web輕量級開發(fā)面試教程》圖書的作者。
周國華,國內(nèi)著名大學計算機應用專業(yè)畢業(yè),超過十年Java開發(fā)經(jīng)驗,畢業(yè)后赴日本擔任豐田、本田、電裝等大型企業(yè).NET及Java架構(gòu)設計,5年多Java領域的職業(yè)能力培訓經(jīng)驗。
吳倍敏,國內(nèi)著名財經(jīng)類大學畢業(yè),多年財稅及ERP系統(tǒng)開發(fā)經(jīng)驗,畢業(yè)后在多家會計師事務所從事內(nèi)部管理及系統(tǒng)架構(gòu)設計。
|
第1章 帶你走進Java的世界
1.1 搭建Java開發(fā)環(huán)境,運行基本程序
1.1.1 在MyEclipse中開發(fā)**個Java程序
1.1.2 **個程序分析容易犯的錯誤
1.1.3 開發(fā)稍微復雜帶函數(shù)調(diào)用的程序
1.1.4 可以通過Debug來排查問題
1.1.5 輸入運行時的參數(shù)
1.2 遵循規(guī)范,讓你的代碼看上去很專業(yè)
1.2.1 注意縮進
1.2.2 規(guī)范命名
1.2.3 在必要的地方加注釋,讓別人能看懂你的代碼
1.2.4 把不同類型的代碼放入不同的類、不同的包(package)
1.3 高效學習法,讓你不再半途而廢
1.3.1 在公司項目中,Web是重點,Core是基礎
1.3.2 Core和Web知識點的學習路線圖
1.3.3 從基本的LinkedList入手,分享一些學習方法
1.3.4 除非有特殊的需求,否則可以延后學習的知識點
1.3.5 以需求為導向,否則效率不高
1.3.6 提升能力后,成功跳槽時常見的憂慮
第2章 基本語法中的常用技術點精講
第3章 集合類與常用的數(shù)據(jù)結(jié)構(gòu)
第4章 異常處理與IO操作
第5章 SQL,JDBC與數(shù)據(jù)庫編程
5.1 項目中常用SQL語句的注意事項
5.1.1 盡量別寫select *
5.1.2 count(*)和count(字段名)的比較
5.1.3 insert的注意事項
5.1.4 在delete中,可以通過in語句同時刪除多個記錄
5.1.5 merge和update的比較
5.1.6 關于存儲過程的分析
5.2 通過JDBC開發(fā)讀寫數(shù)據(jù)庫的代碼
5.2.1 MySQL數(shù)據(jù)庫中的準備工作
5.2.2 編寫讀數(shù)據(jù)表的代碼
5.2.3 編寫插入、更新、刪除數(shù)據(jù)表的代碼
5.2.4 遷移數(shù)據(jù)庫后,JDBC部分代碼的改動
5.3 優(yōu)化數(shù)據(jù)庫部分的代碼
5.3.1 把相對固定的連接信息寫入配置文件中
5.3.2 用PreparedStatement以批處理的方式操作數(shù)據(jù)庫
5.3.3 通過PreparedStatement對象防止SQL注入
5.3.4 使用C3P0連接池
5.3.5 數(shù)據(jù)庫操作方面的面試題
5.4 通過JDBC進行事務操作
5.4.1 開啟事務,合理地提交和回滾
5.4.2 事務中的常見問題:臟讀、幻讀和不可重復讀
5.4.3 事務隔離級別
5.5 面試時JDBC方面的準備要點
第6章 反射機制和代理模式
6.1 字節(jié)碼與反射機制
6.1.1 字節(jié)碼和.class文件
6.1.2 Class類是反射實現(xiàn)的語法基礎
6.2 反射的常見用法
6.2.1 查看屬性的修飾符、類型和名稱
6.2.2 查看方法的返回類型、參數(shù)和名稱
6.2.3 通過forName和newInstance方法加載類
6.2.4 通過反射機制調(diào)用類的方法
6.2.5 反射部分的面試題
6.3 代理模式和反射機制
6.3.1 代理模式
6.3.2 有改進余地的靜態(tài)代理模式
6.3.3 在動態(tài)代理中能看到反射機制
6.4 你已經(jīng)掌握了一種設計模式,就應大膽地說出來
6.4.1 如何在面試時找機會說出代理模式
6.4.2 面試時如何說出對代理模式的認識
第7章 多線程與并發(fā)編程
7.1 線程的基本概念與實現(xiàn)多線程的基本方法
7.1.1 線程和進程
7.1.2 線程的生命周期
7.1.3 通過extends Thread來實現(xiàn)多線程
7.1.4 通過implements Runnable來實現(xiàn)多線程(線程優(yōu)先級)
7.1.5 多線程方面比較基本的面試題
7.2 多線程的競爭和同步
7.2.1 通過sleep方法讓線程釋放CPU資源
7.2.2 Synchronized作用在方法上
7.2.3 Synchronized作用在代碼塊上
7.2.4 配套使用wait和notify方法
7.2.5 死鎖的案例
7.2.6 Synchronized的局限性
7.2.7 通過鎖來管理業(yè)務層面的并發(fā)性
7.2.8 通過Condition實現(xiàn)線程間的通信
7.2.9 通過Semaphore管理多線程的競爭
7.2.10 多線程并發(fā)方面的面試題
7.3 對鎖機制的進一步分析
7.3.1 可重入鎖
7.3.2 公平鎖和非公平鎖
7.3.3 讀寫鎖
7.4 從內(nèi)存結(jié)構(gòu)觀察線程并發(fā)
7.4.1 直觀地了解線程安全與不安全
7.4.2 從線程內(nèi)存結(jié)構(gòu)中了解并發(fā)結(jié)果不一致的原因
7.4.3 volatile不能解決數(shù)據(jù)不一致的問題
7.4.4 通過ThreadLocal為每個線程定義本地變量
7.5 線程池
7.5.1 通過ThreadPoolExecutor實現(xiàn)線程池
7.5.2 通過Callable讓線程返回結(jié)果
7.5.3 通過ExecutorService創(chuàng)建4種類型的線程池
7.6 多線程綜合面試點歸納
7.6.1 說出多線程的基本概念和常規(guī)用法
7.6.2 說出多線程并發(fā)的知識點
7.6.3 從線程內(nèi)存角度分析并發(fā)情況
第8章 讓設計模式真正幫到你
8.1 初識設計模式
8.1.1 設計模式的分類
8.1.2 面試時的常見問題(學習設計模式的側(cè)重點)
8.2 從單例模式入手來了解創(chuàng)建型設計模式
8.2.1 單例模式的實現(xiàn)代碼和應用場景
8.2.2 通過工廠模式屏蔽創(chuàng)建細節(jié)
8.2.3 簡單工廠模式違背了開閉原則
8.2.4 抽象工廠和一般工廠模式的區(qū)別
8.2.5 分析建造者模式和工廠模式的區(qū)別
8.3 了解結(jié)構(gòu)型的設計模式
8.3.1 簡單的裝飾器模式
8.3.2 通過適配器模式協(xié)調(diào)不同類之間的調(diào)用關系
8.4 了解行為型的設計模式
8.4.1 通過迭代器了解迭代模式
8.4.2 常見但大多數(shù)情況不用自己實現(xiàn)的責任鏈模式
8.4.3 適用于聯(lián)動場景的觀察者模式
8.5 設計模式背后包含的原則
8.5.1 應用依賴倒轉(zhuǎn)原則能減少修改所影響的范圍
8.5.2 能盡量讓類穩(wěn)定的單一職責原則
8.5.3 繼承時需要遵循的里氏替換原則
8.5.4 接口隔離原則和*少知道原則
8.5.5 通過合成復用原則優(yōu)化繼承的使用場景
8.6 設計模式方面學習面試經(jīng)驗總結(jié)
8.6.1 設計模式方面對于不同程序員的面試標準
8.6.2 設計模式方面學習和面試的誤區(qū)
8.6.3 面試時如何展示設計模式的能力
8.6.4 設計模式方面的面試題
第9章 虛擬機內(nèi)存優(yōu)化技巧
9.1 虛擬機體系結(jié)構(gòu)和Java跨平臺特性
9.1.1 字節(jié)碼、虛擬機、JRE和跨平臺特性
9.1.2 虛擬機體系結(jié)構(gòu)
9.1.3 歸納靜態(tài)數(shù)據(jù)、基本數(shù)據(jù)類型和引用等數(shù)據(jù)的存儲位置
9.2 Java的垃圾收集機制
9.2.1 分代管理與垃圾回收流程
9.2.2 不重視內(nèi)存性能可能會導致的后果
9.2.3 判斷對象可回收的依據(jù)
9.2.4 深入了解finalize方法
9.2.5 Java垃圾回收機制方面的初級面試題
9.3 通過強、弱、軟、虛4種引用進一步了解垃圾回收機制
9.3.1 軟引用和弱引用的用法
9.3.2 軟引用的使用場景
9.3.3 通過WeakHashMap來了解弱引用的使用場景
9.3.4 虛引用及其使用場景
9.4 更高效地使用內(nèi)存
9.4.1 StoptheWorld、棧溢出錯誤和內(nèi)存溢出錯誤
9.4.2 內(nèi)存泄漏的示例
9.4.3 在代碼中優(yōu)化內(nèi)存性能的具體做法
9.4.4 調(diào)整運行參數(shù),優(yōu)化堆內(nèi)存性能
9.5 定位和排查內(nèi)存性能問題
9.5.1 什么情況下該排查內(nèi)存問題
9.5.2 通過JConsole監(jiān)控內(nèi)存使用量
9.5.3 通過GC日志來觀察內(nèi)存使用情況
9.5.4 通過打印內(nèi)存使用量定位問題點
9.5.5 出現(xiàn)OOM后如何獲取和分析Dump文件
9.5.6 出現(xiàn)內(nèi)存問題該怎樣排查
9.6 內(nèi)部類、final與垃圾回收
9.7 在面試中如何展示虛擬機和內(nèi)存調(diào)優(yōu)技能
9.7.1 從虛擬機體系結(jié)構(gòu)引出內(nèi)存管理的話題
9.7.2 如何自然地引出內(nèi)存話題
9.7.3 根據(jù)堆區(qū)結(jié)構(gòu),闡述垃圾回收的流程
9.7.4 進一步說明如何寫出高性能的代碼
9.7.5 展示監(jiān)控、定位和調(diào)優(yōu)方面的綜合能力
第10章 通過簡歷和面試找到好工作
10.1 哪些人能應聘成功
10.1.1 公司憑什么留下待面試的簡歷
10.1.2 技術面試官考查的要點及各要點的優(yōu)先級
10.1.3 項目經(jīng)理和人事的考查要點
10.1.4 入職后怎樣進行背景調(diào)查
10.2 怎樣的簡歷能幫你爭取到面試機會
10.2.1 簡歷中應包含的要素,一個都別落下
10.2.2 如何描述公司的工作情況
10.2.3 描述項目經(jīng)驗的技巧
10.2.4 投送簡歷時的注意要點
10.3 面試時敘述項目經(jīng)驗和回答問題的技巧
10.3.1 通過敘述項目技能引導后繼問題
10.3.2 結(jié)合項目實際回答問題
10.4 面試前可以做的準備
10.4.1 事先準備些亮點,回答問題時找機會拋出
10.4.2 事先練習展示責任心和團隊協(xié)作能力的方式
10.4.3 準備提問環(huán)節(jié)的問題,以求給自己加分
10.4.4 準備用英文回答問題,以求有備無患
10.4.5 準備些常見刁鉆問題的回答,不要臨場發(fā)揮
10.4.6 準備談薪資的措辭
10.5 項目經(jīng)理級別面試的注意要點
10.5.1 把面試官想象成直接領導
10.5.2 在回答中展示良好的溝通和團隊協(xié)作能力
10.5.3 讓面試官確信你會干得長久
10.6 Offer和勞動合同中需要注意的要點
10.7 *后祝大家前程似錦