注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)工業(yè)技術(shù)建筑科學(xué)建筑設(shè)計(jì)程序員煉成記 從小白到工程師

程序員煉成記 從小白到工程師

程序員煉成記 從小白到工程師

定 價(jià):¥99.00

作 者: 周明耀
出版社: 北京大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787301298930 出版時(shí)間: 2018-10-01 包裝: 平裝
開本: 16開 頁數(shù): 560 字?jǐn)?shù):  

內(nèi)容簡介

  《程序員煉成記:從小工到工程師》主要介紹了作為一名軟件工程師應(yīng)具備的能力。內(nèi)容主要包括Java的基礎(chǔ)知識和JVM、死鎖、CPP技術(shù)、Java8技術(shù)、G1?GC的實(shí)踐、Java的優(yōu)化方向、代碼規(guī)范深度解讀等深度知識,Spring?Boot、Spring?Cloud、Spring里的設(shè)計(jì)模式,關(guān)系型數(shù)據(jù)庫的代表PostgresSQL和NoSQL數(shù)據(jù)庫的代表Cassandra,分布式技術(shù)、消息中間件、大數(shù)據(jù)框架、搜索引擎、事務(wù)、Linux隔離技術(shù)、Go語言入門等高端技術(shù)。最后一章,包含了作者多年的經(jīng)驗(yàn)總結(jié),列舉了可能會遇到的問題,并提出了解決思路。 本書適合所有軟件工程師,尤其適合工作兩年以下的人,力求覆蓋應(yīng)用軟件開發(fā)崗位的校招面試范圍。

作者簡介

  周明耀,2004年畢業(yè)于浙江大學(xué),工學(xué)碩士。13年軟件研發(fā)經(jīng)驗(yàn),近10年技術(shù)團(tuán)隊(duì)管理經(jīng)驗(yàn),4年分布式計(jì)算、大數(shù)據(jù)技術(shù)經(jīng)驗(yàn)。出版書籍包括《大話Java性能優(yōu)化》《深入理解JVM&G1 GC》《技術(shù)領(lǐng)導(dǎo)力:程序員如何才能帶團(tuán)隊(duì)》。

圖書目錄

了解這份職業(yè) 001
1.1 寫在前面 002
1.2 入行前 002
1.2.1?對于ACM國際大學(xué)生程序設(shè)計(jì)競賽的理解 002
1.2.2?參加校招 003
1.3 入行后 004
1.3.1?深度思考 004
1.3.2?工作時(shí)間 004
1.3.3?公司的選擇 005
1.3.4?為什么軟件基礎(chǔ)設(shè)施技術(shù)人員話語權(quán)不高 005
1.3.5?為什么去做高難度的技術(shù) 005
1.3.6?技術(shù)人員的上升通道 006
1.3.7?跟進(jìn)最新技術(shù)的重要性 006
1.4 自勉 007
 學(xué)習(xí)準(zhǔn)備 008
2.1 軟件安裝 009
2.1.1?JDK安裝 009
2.1.2?Eclipse安裝與卸載 013
2.1.3?Eclipse快捷鍵介紹 017
2.1.4?虛擬機(jī)安裝 020
2.2 數(shù)據(jù)結(jié)構(gòu) 027
2.2.1?算法簡介 027
2.2.2?數(shù)據(jù)類型簡介 029
2.2.3?面向?qū)ο蟪绦蛟O(shè)計(jì) 029
2.2.4?算法效能分析 030
2.2.5?線性表 032
2.2.6?鏈表 033
2.2.7?堆棧 067
2.2.8?算術(shù)表達(dá)式的求值法 075
2.2.9?隊(duì)列 078
2.3 難題解釋 091
2.3.1?兩個(gè)數(shù)字相加 091
2.3.2?尋找兩個(gè)數(shù)組的中間數(shù) 093
2.3.3?查找字符串中最長非重復(fù)的子字符串 097
2.3.4?合并兩個(gè)鏈表 098
2.3.5?漢諾塔問題 099
2.3.6?迷宮問題 105
2.3.7?八皇后問題 110
 Java基礎(chǔ)知識 114
3.1 switch關(guān)鍵字 115
3.1.1?Java 6中的使用方式 115
3.1.2?Java 7中的使用方式 116
3.1.3?新特性的優(yōu)缺點(diǎn) 118
3.2 設(shè)計(jì)模式之單例模式 119
3.2.1?引言 119
3.2.2?詳細(xì)介紹 119
3.3 設(shè)計(jì)模式之代理模式 125
3.3.1?引言 125
3.3.2?延遲加載 126
3.4 設(shè)計(jì)模式之適配器模式 132
3.4.1?引言 132
3.4.2?詳細(xì)介紹 132
3.4.3?適配器模式在開源項(xiàng)目中的應(yīng)用 137
3.4.4?適配器模式的使用 145
3.5 字符串操作優(yōu)化 146
3.5.1?字符串對象 146
3.5.2?SubString使用技巧 147
3.5.3?切分字符串 148
3.5.4?合并字符串 150
3.6 數(shù)據(jù)定義和運(yùn)算邏輯優(yōu)化 154
3.6.1?使用局部變量 154
3.6.2?位運(yùn)算代替乘除法 154
3.6.3?替換switch 155
3.6.4?一維數(shù)組代替二維數(shù)組 156
3.6.5?提取表達(dá)式 158
3.6.6?優(yōu)化循環(huán) 159
3.6.7?布爾運(yùn)算代替位運(yùn)算 160
3.6.8?使用arraycopy() 162
3.7 Java I/O相關(guān)知識 163
3.7.1?Java I/O 163
3.7.2?Java NIO 164
3.7.3?Java AIO 174
3.8 數(shù)據(jù)復(fù)用 178
3.8.1?緩沖區(qū) 178
3.8.2?緩存 184
3.8.3?對象復(fù)用池 185
3.8.4?計(jì)算方式轉(zhuǎn)換 187
3.9 集合類優(yōu)化 189
3.9.1?集合類之間關(guān)系 189
3.9.2?集合接口 190
3.9.3?集合類介紹 192
3.9.4?集合類實(shí)踐 194
3.10  Java 8迭代器模型 202
3.10.1?迭代器模式 202
3.10.2?Lambda表達(dá)式 204
3.10.3?Java 8全新集合遍歷方式 204
3.11  Java 9入門 209
3.11.1?模塊化編程 209
3.11.2?模塊化系統(tǒng)目標(biāo) 211
3.11.3?模塊化的JDK 212
3.11.4?模塊資源介紹 212
3.11.5?HelloWorld案例 213
3.12  常見面試題 214
 Java深度知識 222
4.1 JVM內(nèi)存區(qū)域 223
4.1.1?程序計(jì)數(shù)器 224
4.1.2?虛擬機(jī)棧 224
4.1.3?本地方法棧 228
4.1.4?Java堆 229
4.1.5?方法區(qū) 234
4.2 JVM為什么需要GC 235
4.2.1?JVM發(fā)展歷史簡介 235
4.2.2?GC發(fā)展歷史簡介 236
4.2.3?G1 GC基本思想? 237
4.2.4?G1 GC垃圾回收機(jī)制? 237
4.2.5?G1的區(qū)間設(shè)計(jì)靈感 238
4.3 如何使用SA工具 239
4.4 死鎖及處理方式 246
4.4.1?死鎖描述 246
4.4.2?死鎖情況診斷 251
4.4.3?死鎖解決方案 254
4.5 JavaCPP技術(shù) 256
4.5.1?JavaCPP示例 257
4.5.2?JavaCPP-presets簡介 259
4.5.3?JavaCPP-presets示例 261
4.5.4?JavaCPP性能測試 270
4.6 Java 8解決的若干問題 271
4.6.1?HashMap 271
4.6.2?行為參數(shù)化 273
4.6.3?讀取文件 276
4.6.4?Stream 277
4.7 JDK 8與G1 GC實(shí)踐 291
4.7.1?基礎(chǔ)解釋 291
4.7.2?G1 GC參數(shù)講解 292
4.8 Java的優(yōu)化方向 303
4.8.1?Java EE 303
4.8.2?函數(shù)式語言 305
4.8.3?VM啟動時(shí)間優(yōu)化 307
4.8.4?JIT編譯器 308
4.9 代碼規(guī)范深度解讀 308
4.9.1?下畫線或美元符號 309
4.9.2?拼音與英文混合 309
4.9.3?類命名 309
4.9.4?方法名、參數(shù)名和變量名 310
4.9.5?常量命名 312
4.9.6?抽象類的命名 312
4.9.7?避免常量魔法值的使用 312
4.9.8?變量值范圍 313
4.9.9?大括號的使用規(guī)定 313
4.9.10?單行字符數(shù)限制 314
4.9.11?靜態(tài)變量及方法調(diào)用 315
4.9.12?可變參數(shù)編程 316
4.9.13?單元測試應(yīng)該自動執(zhí)行 318
4.9.14?單元測試應(yīng)該是獨(dú)立的 318
4.9.15?BCDE原則 318
4.9.16?數(shù)據(jù)類型精度考量 319
4.9.17?使用Char 321
 Spring相關(guān)知識 323
5.1 Spring Boot 324
5.1.1?初始Spring Boot 324
5.1.2?Spring Boot示例 337
5.1.3?Spring Boot創(chuàng)建Restful API示例 341
5.1.4?Spring Boot使用JavaMailSender發(fā)送郵件 344
5.1.5?Spring Boot 1.5.x新特性 347
5.2 Spring Cloud 349
5.2.1?Spring Cloud簡介 349
5.2.2?Spring Cloud Eureka 350
5.2.3?Spring Cloud Consul 353
5.2.4?分布式配置中心 354
5.3 Spring中的設(shè)計(jì)模式 358
5.3.1?解釋器設(shè)計(jì)模式 358
5.3.2?構(gòu)造器設(shè)計(jì)模式 358
5.3.3?工廠方法設(shè)計(jì)模式 362
5.3.4?抽象工廠設(shè)計(jì)模式 364
5.3.5?代理設(shè)計(jì)模式 366
5.3.6?策略設(shè)計(jì)模式 368
5.3.7?模板設(shè)計(jì)模式 370
 數(shù)據(jù)庫知識 374
6.1 關(guān)系型數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫 375
6.1.1?關(guān)系型數(shù)據(jù)庫 375
6.1.2?NoSQL數(shù)據(jù)庫 378
6.2 PostgreSQL相關(guān)知識 380
6.2.1?基本操作 380
6.2.2?系統(tǒng)視圖表 381
6.2.3?索引 384
6.2.4?查詢計(jì)劃 388
6.3 Cassandra相關(guān)知識 393
6.3.1?基本介紹 393
6.3.2?數(shù)據(jù)模型 393
6.3.3?關(guān)鍵特性 394
6.3.4?訪問服務(wù)端 397
6.3.5?無中心化實(shí)現(xiàn)因素 403
6.3.6?性能測試工具 408
 高端技術(shù)匯總 411
7.1 分布式系統(tǒng) 412
7.1.1?店長負(fù)責(zé)制 412
7.1.2?訂單處理方式 414
7.1.3?員工角色拆分 415
7.1.4?多個(gè)任務(wù)接收 416
7.1.5?訂單處理過程上屏 416
7.1.6?異常數(shù)據(jù)干擾 417
7.1.7?座位設(shè)計(jì)模式 418
7.2 選舉算法的機(jī)制 419
7.2.1?最簡單的選舉算法 419
7.2.2?拜占庭問題 420
7.2.3?Paxos算法 422
7.2.4?ZAB協(xié)議 424

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號