-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Java程序員面試寶典(第三版)

( 簡體 字)
作者:歐立奇,朱梅,段韜類別:1. -> 程式設計 -> JAVA -> Java
   2. -> 程式設計 -> 面試指南
譯者:
出版社:電子工業出版社Java程序員面試寶典(第三版) 3dWoo書號: 36838
詢問書籍請說出此書號!

缺書
NT售價: 245

出版日:9/1/2013
頁數:372
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121213137
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

本書是Java程序員面試寶典的第三版,同時也是《程序員面試寶典》的姊妹書。
第三版在保留第二版數據結構、字符串處理、Java程序設計等主干內容的基礎上,更新了部分程序員面試題目,內容主要取材于2011年至2013年多家大公司的面試題,以反映第二版圖書出版后近兩年來所發生的變化,目的是幫助求職者在面試過程中更好地處理一些新問題,應對新變化。
本書相對上一版的變化主要有以下三點。
1.把智力測試這一章進行分解,擴展增加了如下章節:數字類題目、圖表類題目,并修正合并了一些內容,以更好地幫助求職者應對求職過程中出現的一些細節和麻煩。
2.針對程序設計這一部分,我們更新了部分例題。隨著互聯網相關面試題的頻繁出現,我們新增并更新了如下知識點:Trie樹、圖的遍歷、動態規劃算法。采用循序漸進的辦法,將重要概念加以復習,完善解題思路,而不是僅僅給出答案。
3.針對近兩年面試過程中出現的新題型,本書補充了新的章節,如操作系統的內存管理問題、哈希表問題等。與第二版相比較,更加貼近市場的變化,更加與時俱進。
PS: 以前各個版本替換下的題目將保留在作者博客,讀者可以訪問以下網址獲取。
http://www.cnblogs.com/programmerinterview/
就編程而言,雖然Java和C++大相徑庭,但在更加有趣的語言后面的知識是設計模式、分析模式、求職解答、算法策略、信息化……也就是說,本書追求的是程序員求職背后的一些知識,即對于技術的本質理解。所以本書雖命名為“Java程序員面試寶典”,但不僅限于對Java技術的單純講解。因為只有這樣,求職者才能不被語言所羈絆,而對于一個企業而言,除了看中求職者對語言的熟練程度,更看重工作經驗、大局觀和整體架構等超脫語言的知識。
本書采用一種問詢式的結構。這樣不僅言簡意賅、平易近人,而且可以容納更多的題目,真正達到“寶典”之效用。但本書又不僅僅作為一個題庫出現,對一個類型的問題不簡單加以重復。本書采用循序漸進的辦法:(1)將重要概念加以復習;(2)完善解題思路,而不是僅僅給出答案;(3)給出完整可靠的答案,如果是可以驗證的,要給出驗證的結果;(4)綜合幾種解題方案,給出最優解;(5)觸類旁通,給出語言背后的算法本質性解釋。本書的解題思路不僅能夠讓讀者知道什么是正確的解決方案,而且讓讀者明白怎樣能獲得最佳方案。
本書不同于其他Java程序書籍的主要特點如下。

中國軟件企業的規模比較小,面試涉及的方面比較多,且比較基礎,比如常會考一些編程基礎性的題,而原有的面試書籍對此方面鮮有觸及。本書把國內公司面試時最易考到的基礎考點,放在Java基礎程序設計里面,希望能切切實實解決地實際面試問題。

面試題通過一道題考一個專類方面的能力。說起Java,人們首先想到的是Java編程語言,然而事實上,Java是一種技術,它由四個方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(Java API)。從面試者的角度來講,一個測試也許能從多方面揭示應試者的素質,至少能了解應試者所掌握類的水平。市面上流行的面試書籍在此專業性的分類方面做得不夠,正因為如此,本書中追求的是程序員求職背后的一些知識:對于技術的本質理解,而不僅限于對Java技術的單純講解。

本書包括但不僅僅限于Java程序員面試試題,對求職市場面試試題做了妥善分類后,將面試對象分為軟件開發人員、網絡工程師、測試工程師和系統管理員。實際上,市面上流行的面試書籍僅對軟件開發人員比較側重,而忽略網絡工程師和測試工程師,本書就這一方面給出了詳細論斷,并結合大量考題分析題目特點給出應試方案。本書在這些方面做出了改進,以適應市場需求。
同時本書對外企經常考到的UML及設計模式內容也做了深入的分析,從本質上詮釋面試的真諦。

第三版在保留原書主干內容的基礎上,內容非常新,可以算做面試者求職前的一份全真模擬。同時作者將求職中的細節問題(簡歷,招聘,簽約,違約),以及筆試、面試中的感悟融入書中,給求職者以最真切的人文關懷。真情實感,娓娓道來,指引讀者走上理想的工作崗位。
本書不是一本萬能書籍,但肯定是您工作與求職的好助手、好伙伴!
本書主要由歐立奇編著,其他參與編寫的人員有朱梅、段韜、秦曉東、李啟高、馬雪、胥虎軍、馬煜、劉洋、方鶴鶴等。
編著者
內容簡介:

本書是《Java程序員面試寶典》的第三版。第三版在保留第二版數據結構、字符串處理、Java程序設計等主干內容的基礎上,更新了部分程序員面試題目,內容主要取材于2011年至2013年多家大公司的面試題,以反映第二版圖書出版后近兩年來所發生的變化,目的是幫助求職者在面試過程中更好地處理一些新問題,應對新變化。
本書最后著力講述了如何進行英語面試和電話面試,并對求職中簽約、毀約的注意事項及群體面試進行了解析。本書的面試題除了有詳細的解析外,對相關知識點也有擴展說明。希望這些內容對讀者從求職就業到提升計算機專業知識有顯著的幫助。

目錄:

第1部分 求職過程
古人云:凡事預則立,不預則廢。機會都是垂青有準備的人。為了得到一份滿意的工作,求職者一定要對整個求職過程有清醒的了解。把能夠預見的、必須做的事情早一些做完,這樣在大規模招聘開始的時候就可以專心地為面試做準備。求職過程中會發生很多預料不到的事情,當你的計劃被這些事情打亂之后,要做的事會越堆越多,一步落后,步步落后。如果能夠盡早把能做的事情做完,即便有計劃外的事件發生,也不會產生太嚴重的影響。努力地使事態的發展處在自己能控制的范圍之內,這樣無論發生任何事都能有應對之策。
第1章 應聘求職 2
每年的9月到次年的1月,都是應屆畢業生求職、在職人員跳槽的高峰期。對于即將成為程序員的應屆畢業生們,在求職過程中怎樣確定目標公司和目標職位?對于已經是程序員的跳槽大軍,是按照技術路線發展自己的職業生涯,還是走向管理崗位繼續自己的職業道路,或者是改變自己的發展軌跡?在求職過程中要注意哪些細節?這些都是求職者所關心的話題。
1.1 應聘渠道 2
1.2 應聘流程 3
第2章 簡歷書寫 4
據統計,80%的簡歷都是不合格的。不少人事管理者抱怨收到的許多簡歷在格式上很糟糕。簡歷應該如何做到在格式上簡潔明了,重點突出?求職信應該如何有足夠的內容推銷自己?如何控制長度,言簡意賅?相信讀了本章你會對簡歷的撰寫有一個新的認識。
2.1 書寫簡歷注意事項 4
2.2 簡歷模板 6
第3章 求職五步曲 10
筆試、電話面試和面試是順利求職的三個過程。三關全過才能順利簽約,只要有一關沒能通過,就會被“刷”掉。除此之外,簽約本身又何嘗不是一個重要的考試?涉及你的未來、人生、行業甚至家庭。當然有簽約就有可能會有違約,真希望你們不必走第五步,但是這個世界畢竟不是童話。
3.1 筆試 10
3.2 電話面試 12
3.3 面試 13
3.4 簽約 14
3.5 違約 18
第4章 職業生涯發展規劃 20
在一般情況下,我們工作一年之后,對自己的喜好及擅長都有了更加深刻的了解,這時會有較為明確的職業發展規劃。
4.1 缺乏工作經驗的應屆畢業生 20
4.2 更換工作的程序員們 22
4.3 快樂地工作 23
第2部分 Java程序設計
本部分主要以Java設計語言為基礎,通過大量實際的例子分析各大公司Java面試題目,從技術上分析面試題的內涵。一般公司的面試題都是兩套——C++或Java,面試者可以選擇。
第5章 Java程序設計基本概念 28
對于一個求職者或者應屆畢業生來說,公司除了對項目經驗有所問詢之外,最好的考試辦法就是檢查基本功,包括編程風格,以及對賦值語句、遞增語句、類型轉換、數據交換等程序設計基本概念的理解。當然,在考試之前最好對自己所掌握的程序概念知識有所了解,尤其是對各種細致的考點要加以重視。本章考題來自真實的筆試資料,希望讀者先不要看答案,自我解答后再與答案加以對比,找出自己的不足。
5.1 JVM 28
5.2 i++ 34
5.3 類型轉換 37
5.4 程序結構 41
5.5 運算符 42
5.6 異常 47
5.7 反射 59
第6章 傳遞與引用 61
Java語言明確說明取消了指針,因為指針往往是在帶來方便的同時導致代碼不安全的根源,而且還會使程序變得非常復雜和難以理解,濫用指針寫成的代碼不亞于使用早已“臭名昭著”的GOTO語句。Java放棄指針的概念絕對是極其明智的。但這只是在Java語言中沒有明確的指針定義,實質上,每一個new語句返回的都是一個指針的引用,只不過在大多數時候Java不用關心如何操作這個“指針”,更不用像在操作C++的指針那樣膽戰心驚,唯一要多注意的是在給函數傳遞對象的時候。
6.1 傳值與傳引用 61
6.2 靜態變量與私有變量 66
6.3 輸入/輸出流 67
6.4 序列化 71
第7章 循環、條件、概率 73
遞歸過程的執行總是一個過程體未執行完,就帶著本次執行的結果又進入另一輪過程體的執行……如此反復,不斷深入,直到某次過程的執行遇到終止遞歸調用的條件成立時,則不再深入,而執行本次的過程體余下的部分,然后又返回到上一次調用的過程體中,執行其余下的部分……如此反復,直到回到起始位置上,才最終結束整個遞歸過程的執行,得到相應的執行結果。遞歸過程的程序設計的核心就是參照這種執行流程,設計出一種適合“逐步深入,而后又逐步返回”的遞歸調用模型,以解決實際的面試例題。
7.1 典型遞歸問題 73
7.2 循環與條件 78
第8章 Java內存管理 84
內存管理太重要了,花費多少口舌介紹它都不過分。筆者曾經見到這樣一句話:“C++程序員覺得內存管理太重要了,所以一定要自己進行管理;Java/C#程序員覺得內存管理太重要了,所以一定不能自己去管理。”從某種意義上說,兩者都是對的。面試中內存管理涉及堆、棧、哈希表、內存泄漏等方面。
8.1 垃圾收集 84
8.2 內存管理 88
8.3 clone 92
第9章 面向對象 95
面向對象其實是現實世界模型的自然延伸。現實世界中任何實體都可以看做是對象。對象之間通過消息相互作用。另外,現實世界中任何實體都可歸屬于某類事物,任何對象都是某一類事物的實例。如果說傳統的過程式編程語言是以過程為中心、以算法為驅動的話,面向對象的編程語言則是以對象為中心,以消息為驅動。用公式表示,過程式編程語言為“程序=算法+數據”;面向對象編程語言為“程序=對象+消息”。
9.1 面向對象的基本概念 96
9.2 類和對象 98
9.3 嵌套類 101
9.4 集合類 102
9.5 構造函數和析構函數 107
9.6 復制構造函數和賦值函數 111
9.7 多態的概念 112
第10章 繼承與接口 116
接口在實際語言,如Delphi、Java、C++等中,都有廣義和狹義之分。
10.1 基礎知識 116
10.2 Super 124
10.3 this 126
10.4 不能繼承的情況 130
10.5 抽象類與接口 131
第3部分 數據結構和設計模式
本部分主要介紹求職面試過程中出現的第二個重要的板塊——數據結構,包括字符串的使用、堆、棧、排序方法等。此外,隨著外企研發機構大量遷入我國,外企針對軟件工程知識的考核,包括設計模式、UML、敏捷軟件開發,以及.NET技術和完全面向對象語言C#的面試題目將會有增無減,今后設計模式在面試中的比重會進一步提高。
第11章 數據結構基礎 138
面試時間一般有兩個小時,其中至少有20∼30分鐘左右是用來回答數據結構相關的問題,鏈表棧、堆、數組的排序和逆置是筆試必考的內容。
11.1 堆棧 138
11.2 鏈表、哈希表 141
11.3 樹、圖 143
11.4 排序基礎知識 146
第12章 字符串、數組、范型 173
求職者在進行筆試時,幾乎沒有不考字符串、數組和范型的。字符串也是一種相對簡單的數據結構,結合指針,容易多次引起面試官反復發問。筆者曾不止一次在筆試或面試時遇到字符串的試題。事實上,字符串也是一個考驗程序員編程規范和編程習慣的重要考點。范型是Java SE 1.5的新特型,泛型的本質是參數化類型,也就是說,所操作的數據類型被指定為一個參數。這種參數類型可用在類、接口和方法的創建中,分別稱為范型類、泛型接口、泛型方法。Java語言引入范型的好處是安全簡單。Java范型編程也是Java程序員面試的熱點之一。求職者不能忽視這些細節,因為這些細節會體現你對操作系統、軟件工程、邊界內存處理等方面知識的掌控能力。
12.1 字符串基礎問題 173
12.2 StringBuffer 181
12.3 正則表達式 188
12.4 數字流和數組 189
12.5 字符串其他問題 194
12.6 范型與容器 198
第13章 設計模式 202
地上本沒有路,走的人多了,也就成了路。設計模式如同此理,它是經驗的傳承,并不成體系;它是被前人發現、經過總結形成了一套某一類問題的一般性解決方案,而不是被設計出來的定性規則;它不像算法那樣可以照搬照用。
13.1 UML 203
13.2 常見設計模式 204
13.3 軟件工程 205
第4部分 操作系統、數據庫、網絡
本部分主要介紹求職面試過程中出現的第三個重要的板塊——操作系統、數據庫、網絡知識。作為一名程序員,尤其是系統管理方面的程序員,對這幾部分有深刻的理解和領悟是相當重要的。
第14章 操作系統 210
操作系統面試例題主要涉及進程、線程、內存管理、垃圾回收,以及緩存等方面。
14.1 基礎知識 210
14.2 進程 212
14.3 線程與串行化 214
第15章 數據庫和SQL語言 226
數據庫面試例題主要涉及范式、事物、存儲過程、SQL語言及索引等方面。
15.1 數據庫理論問題 226
15.2 SQL語言常見問題 229
第16章 計算機網絡及分布式系統 234
網絡面試例題主要涉及局域網、廣域網和IP管理等方面。
16.1 網絡結構 234
16.2 TCP/IP 237
16.3 網絡其他問題 241


第5部分 Java開源
EJB組件曾經被認為是一個重量級的組件。EJB 3.0規范的重要目標就是簡化EJB的開發,提供一個相對輕量級的組件方案。Spring基于輕量內核,然后通過集成第三方的服務器來提供完整的架構。
第17章 J2EE技術 250
從整體上講,J2EE是使用Java技術開發企業級應用的一種事實上的工業標準(Sun公司出于其自身利益的考慮,至今沒有將Java及其相關技術納入標準化組織的體系),它是Java技術在不斷適應和促進企業級應用過程中的產物。目前,Java平臺有三個版本:適用于小型設備和智能卡的J2ME(Java 2 Platform Micro Edition)、適用于桌面系統的J2SE和適用于企業級應用的J2EE。Sun推出J2EE的目的是為了消除傳統Client/Server模式的弊病,迎合Browser/Server架構的潮流,為應用Java技術開發服務器端應用提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標準的企業級平臺,從而簡化企業應用的開發、管理和部署。J2EE是一個標準,而不是一個現成的產品。各個平臺開發商按照J2EE規范分別開發了不同的J2EE應用服務器,J2EE應用服務器是J2EE企業級應用的部署平臺。由于它們都遵循了J2EE規范,因此,使用J2EE技術開發的企業級應用可以部署在各種J2EE應用服務器上。
17.1 Spring輕量級架構 250
17.2 Hibernate 252
17.3 EJB 260
17.4 JDBC 264
17.5 JDO 272
第18章 Java中的Web設計 274
關于Web設計的面試題目,涉及Session、Servlet、JSP、Javascript和XML等方面。本章的考題來自真實的筆試資料,希望讀者先不要看答案,自我解答后再與答案加以對比,找出自己的不足。
18.1 JSP 274
18.2 Servlet 276
18.3 JavaScript 280
18.4 XML 281
18.5 APPLET 284
第19章 Struts結構設計 285
Struts與Tomcat、Turbine等諸多Apache項目一樣,是開源軟件,這是它的一大優點,使開發者能更深入地了解其內部實現機制。除此之外,Struts的優點主要集中體現在兩個方面:TagLib和頁面導航。TagLib是Struts的標記庫,靈活運用能大大提高開發效率。頁面導航使系統的脈絡更加清晰,通過一個配置文件,即可把握整個系統各部分之間的聯系,這對于后期的維護有很大的好處,尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。
19.1 AWT 285
19.2 Struts體系結構 287
第20章 Java架構技術及相關中間件 290
在軟件開發的過程中,人們越來越意識到軟件重用的重要性。異構的系統、不同的實現方案使軟件的重用變得復雜。在中間件產生以前,應用軟件不得不直接面對非常底層的東西。不同的硬件體系、不同的操作系統、不同的網絡協議和不同的數據庫等,這些使得應用程序復雜多變。面對易變的東西,軟件設計師們已經習慣于通過添加中間層的方式來隔離變化。把應用軟件所要面臨的共性問題進行提煉、抽象,在操作系統中添加一個可復用的部分,供成千上萬的應用軟件重復使用。這一技術思想最終構成了中間件。一方面,中間件要應對底層不同的環境,針對不同的環境進行不同的調用;另一方面,中間件要對上層提供統一的接口,保證在不同的環境中為上層提供相同行為的服務。具體地說,中間件屏蔽了底層操作系統的復雜性,使程序開發人員面對一個簡單而統一的開發環境,減少程序設計的復雜性,將注意力集中在自己的業務上,不必再為程序在不同系統軟件上的移植而重復工作,大大減少了技術上的負擔。
20.1 WebLogic 291
20.2 WebSphere 294
20.3 WebService 294
第21章 Java測試 296
軟件測試在軟件質量安全控制上的地位不可替代。美國的軟件企業將40%的工作量花在軟件測試上,測試費用占項目總費用的30%∼50%。如微軟Windows 2000團隊動用的測試人員比項目經理和開發人員的總和還要多。之所以如此重視軟件測試,是因為通過必要的測試,軟件缺陷數可至少降低75%,而軟件的投資回報率能達到350%。
21.1 白盒測試 296
21.2 性能測試 301
21.3 游戲 305
第6部分 綜合面試題
本部分主要介紹求職面試過程中出現的第五個重要的板塊——英語面試、電話面試和智力測試。其中,英語面試不同于普通的英語面試。就一個程序員而言,最好能夠用英文流利地介紹自己的求職經歷,這是進外企非常重要的一步。此外,還必須對幾個常用的問題準備好相關的解答,比如你最大的缺點是什么。有些問題即便是用中文,你都很難回答,更何況是用英文去回答。但是求職過程本身就是一個準備的過程,精心地準備,等待機會——機會總是垂青于那些精心準備的人。
第22章 英語面試 310
如果你是一個具有戰略眼光,且期待進入國際性跨國大企業的求職者,本章值得你仔細研讀。
22.1 面試過程和技巧 310
22.2 關于工作(About Job) 312
22.3 關于個人(About Person) 315
22.4 關于未來(About Future) 317
第23章 電話面試 321
求職時,經常會遭遇電話面試,戲稱“觸電”。筆者曾經在開會、洗澡、吃飯、坐車時都接到過電話。問的問題也是五花八門,千奇百怪。
23.1 電話面試之前的準備工作 321
23.2 電話面試交流常見問題 322
第24章 數字類題目分析 331
24.1 數字規律類題目 331
24.2 數字填充類題目 334
24.3 數字運算類題目 335
24.4 應用數學類題目 337
第25章 圖表類題目分析 344
25.1 圖形變換類題目 344
25.2 表格分析類題目 351
第26章 智力類題目分析 353
26.1 推理類題目 353
26.2 博弈論 355
26.3 概率 357
序: