Java開發之道

Java開發之道

《Java開發之道》是2011年出版的圖書,作者是張振坤李鐘尉陳丹丹。

基本介紹

  • 書名:Java開發之道
  • 作者: 張振坤  李鐘尉  陳丹丹
  • ISBN:978-7-121-12643-7
  • 頁數:564 頁
  • 定價:69.00元含(含光碟1張)
  • 出版時間:2011年3月
  • 開本:16開
宣傳語,作者簡介,內 容 簡 介,目 錄,

宣傳語

高薪工程師經驗分享
事半功倍的編程手記
凝聚5位開發高手4年開發心血精華所得,程式開發人員開發的必備寶典
253個感悟、技巧、陷阱、謬誤、算法和方案,
幫您輕鬆掌握程式開發方法,提升開發實戰技能。

作者簡介

本叢書的作者團隊對計算機程式設計類圖書市場有很好的敏感性,對出版動態有準確的把握,對計算機技術的發展進行長期跟蹤。該團隊長期以來致力於計算機圖書的內容提供和策劃,已經出版的多個系列圖書都在計算機圖書市場上有良好的口碑,都曾經引領了當年的電腦程式設計暢銷書。

內 容 簡 介

這是一本集編程感悟、技巧、陷阱、謬誤、算法和方案為一體的編程書籍,旨在引導讀者如何學習編程,幫助讀者豐富編程經驗。全書分為6篇,總計16章內容,全面介紹了學習和套用Java進行程式開發的各種陷阱與謬誤、技術細節與編程技巧、常用的算法及解決方案,涉及主要包括Java語言關鍵技術、Swing技術、JDBC、檔案、序列化對象、網路、反射、執行緒、圖形圖像、動畫、算法、方案和資料庫套用等的相關技術細節、技巧以及實施方案。
本書附帶有配套CD光碟,光碟中提供了書中全部實例和項目的原始碼,這些原始碼都是經過作者精心調試通過的,保證能夠在Windows XP、Windows 2003及Windows 7作業系統下編譯和運行。
本書非常適合大中專院校在校生、畢業生、求職者、編程愛好者學習,同時也可以作為想要學習編程的初級人員的指導用書。
前 言
許多求職人員在面試時經常遇到的一個問題是“您有幾年開發經驗?”這對於一個剛剛走出校園的畢業生來說,簡直就是一顆“核子彈”。“經驗”真的很重要嗎?是的,它是衡量個人能力的砝碼,它將許多求職者擋在了名企的門外。
本書不是基礎類書籍,不是項目、案例類書籍,它是一本積累編程經驗的書籍。本書包括了80個編程細節、97個編程技巧、21個編程陷阱、20個編程謬誤、20個最佳化算法和15個解決方案。這些內容是作者結合自己多年的實際開發經驗,精心篩選和提煉而成的。如果您想提高自己的編程能力,本書將是最佳的選擇!
本書內容
本書包含6大部分,共16章內容,主要包括編程經驗與感悟、陷阱與謬誤、技術細節、編程技巧、算法與效率、解決方案等內容。
本書的內容結構如下圖所示。
本書特色
內容經典、匯聚精華
書中每項內容都是由作者精心選擇的,具有很強的代表性和實用性。
講解風趣、詼諧生動
無論是在目錄名稱上還是在技術講解上,始終突出趣味性。在目錄選擇上,作者想盡辦法使目錄更新穎,更能夠體現內容的特點。在技術講解中,通過穿插故事、比喻等形式,幫助讀者消化和吸收所介紹的內容。
知無不言、言無不盡
書中在介紹知識點時,對相應專題進行了深入剖析,使知識點呈現系統性、全面性的特點,避免出現一筆帶過、言之無物的情況。
圖文並茂、形象易懂
書中使用了大量的流程圖、示意圖及圖例來說明和演示技術,幫助讀者更直觀地理解書中的內容。
代碼規範、注釋詳盡
書中的實例代碼都是按照商業編碼規範來書寫的,為了方便用戶閱讀代碼,幾乎所有的代碼都提供有詳細的注釋。
private Connection conn=null; //聲明連線
private PreparedStatement ps=null; //聲明PreparedStatement對象
private ResultSet rs=null; //聲明結果集對象
/**
*定義構造方法,用於載入資料庫驅動
*/
public PreparedQueryFrame() {
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver"); //載入資料庫驅動
} catch (ClassNotFoundException e ) {
e.printStackTrace(); //列印棧蹤跡
}
}
本書約定
書中的所有實例在光碟中均有原始碼。
原始碼在光碟中的存儲形式為“光碟\MR\Instance\12\03\插入排序”,其中,“MR\Instance\”是固定的目錄部分,其後的“12”表示實例所在的章號,而章號後的“03”表示二級標題的序號,最後的“插入排序”表示項目名稱 ,目錄示意圖如下所示。
在本書的二級標題下會存在有多個實例的情況,為了區分不同的實例,實例的項目名稱都是不同的。例如,03二級標題下存在兩個實例,它們的存儲形式為“MR\ Instance\12\03\插入排序”和“MR\ Instance\12\03\希爾排序”。
書中有些實例會用到資料庫,為了保證程式的運行,用戶需要將實例使用的資料庫安裝到本地機器上,詳細安裝方法請參考光碟中的“Java開發之道光碟使用說明書”。
出於篇幅的限制,書中有些實例只給出了核心代碼,但這不會影響讀者的學習,完整的代碼可以從本書的光碟中找到。
在使用本書的實例之前,請仔細閱讀光碟中的“Java開發之道光碟使用說明書”。
附贈DVD光碟
為了幫助讀者學習和練習書中的實例,本書附贈有DVD光碟,裡面提供了書中所有實例項目的原始碼、素材及“Java開發之道光碟使用說明書”,並贈送了Java的相關學習資料。光碟目錄如下圖所示。
註:讀者在使用本書光碟源碼前,請仔細閱讀光碟使用說明書。
本書讀者群
本書非常適合以下人員閱讀:
 Java求職人員
 大中專院校的在校生和畢業生
 相關培訓機構的學員
 語言已經入門,急需進一步提高的編程人員
 編程愛好者
 有多年開發經驗的程式設計師
學習答疑
如果您在學習或使用本書的過程中遇到問題或疑惑,可以通過如下方式與我們聯繫:
我們承諾將在5個工作日內給您提供解答。
本書作者
本書由明日科技組織編寫,參加編寫的有張振坤、李鐘尉、陳丹丹、呂雙、劉中華、梁水、張彥國、王樂樂、高春艷、梁曉嵐、李偉明、鞏建華、賽奎春、楊麗、劉欣等。由於作者水平有限,疏漏和不足之處在所難免,請廣大讀者朋友批評指正。
明日科技
2010年7月

目 錄

第1篇 編程經驗與感悟——站在前人的肩膀上
第1章 編程初學者應養成的良好習慣 2
細節1 最好的老師——培養對編程的興趣 3
細節2 編程的根基——不容忽視的基礎知識 5
細節3 成功的關鍵——要有學好編程的堅定信心 6
細節4 寶貴的財富——理論與實踐相結合 6
細節5 高貴的品質——程式書寫要規範化 7
細節6 減少依賴性——學會獨立思考和解決問題 10
第2章 高級程式設計師應具備的基本素質和能力 12
細節1 易於理解——具有良好的編程風格 13
細節2 取長補短——多與別人交流 14
細節3 先決條件——分析和設計資料庫 15
細節4 知己知彼——寫程式之前要分析 17
細節5 日積月累——寫程式之後要總結 18
細節6 重中之重——軟體需求規格說明書 18
第2篇 陷阱與謬誤——吸取前人的教訓
第3章 細說開發人員不可忽略的21個技術陷阱 22
陷阱1 漏洞百出——使用for刪除集合元素陷阱 23
陷阱2 差值損失——浮點數相減造成的損失 24
陷阱3 零的危害——不慎使用八進制常量的危害 26
陷阱4 無休無止——while(condition); 以分號結尾 27
陷阱5 無風起浪——初始化靜態成員的陷阱 28
陷阱6 稍縱即逝——長整數運算中存在的隱患 29
陷阱7 慎之又慎——複合賦值造成的經濟損失 31
陷阱8 魚龍混雜——為字元串快取構造器傳遞字元 32
陷阱9 順理成章——靜態常量的初始化順序有講究 33
陷阱10 看似相同——增量、減量運算符在前在後 35
陷阱11 不得不防——不可變的整數運算 36
陷阱12 小心謹慎——位元組數組轉換為字元串亂碼 37
陷阱13 無法挽回——在映射中放入重複鍵丟失數據 38
陷阱14 不同版本——反序列化對象 39
陷阱15 無法運行——自定義String導致主方法無效 42
陷阱16 損失慘重——不小心隱藏父類的final欄位 44
陷阱17 脫離控制——if語句沒加大括弧“{”和“}” 47
陷阱18 控制無效——缺少break的switch語句 49
陷阱19 痴心妄想——同名形參變數為成員變數賦值 51
陷阱20 各負其責——重寫equals方法但是沒有重寫hashCode方法 53
陷阱21 一字之差——重寫對象的hashCode方法, 但重寫equals方法時
陷阱21 參數不是Object類型 56
第4章 細說開發人員意識中的20個常見謬誤 62
謬誤1 看似相同——使用&&、||和&、|作用於布爾值效率相同 63
謬誤2 並非如此——類中不能創建私有構造方法 64
謬誤3 是非真相——默認構造方法都是public的 64
謬誤4 方便閱讀——為了提高編程效率而不必關心代碼的書寫 65
謬誤5 片面之詞——所有的業務邏輯都應由程式代碼來實現 65
謬誤6 易於理解——算法應越簡單越好 66
謬誤7 謬以千里——程式應由開發人員自己調試 67
謬誤8 無稽之談——垃圾回收器可以回收資源而不必手動釋放 67
謬誤9 提高效率——設計資料庫表時不必定義索引 69
謬誤10 誤入歧途——所有的異常都要用try…catch語句捕獲 69
謬誤11 必由之路——在try語句塊中使用return語句, finally語句
陷阱21 塊將得不到執行 71
謬誤12 小心為妙——split()方法可分割所有字元串 72
謬誤13 不知其二——泛型在不被指定的情況下是不確定的類型 73
謬誤14 不知其二——字元串是值類型 74
謬誤15 相差甚遠——String與StringBuffer基本上相同 75
謬誤16 一字之別——重載就是重寫 77
謬誤17 相差甚遠——存儲相同數據一維數組、二維數組所占記憶體基本相同 79
謬誤18 恰恰相反——存儲數據HashMap比數組快 81
謬誤19 恰恰相反——頻繁查詢數組比HashMap快 82
謬誤20 誤入歧途——Java中沒有全局變數 83
第3篇 技術細節——修煉編程內功心法
第5章 Java語言基礎細節47例 86
細節1 意義深遠——Java程式的運行機制 87
細節2 建立信心——解決常見錯誤 87
細節3 提高效率——快取數據 91
細節4 變幻莫測——裝箱與拆箱 92
細節5 無中生有——數組元素的默認初始值 95
細節6 管理記憶體——記憶體中的數組 96
細節7 集合殺手——新增的for…each循環 98
細節8 含義不同——使用“==”與equals比較對象 99
細節9 如我所願——格式化小數與貨幣值 100
細節10 未卜先知——使用正則表達式 102
細節11 化整為零——分割字元串 105
細節12 變化多端——數據類型轉換 105
細節13 永不停息——死循環 107
細節14 互動顯示——基本類型與字元串的轉換 108
細節15 簡單高效——使用Arrays類運算元組 110
細節16 伸縮自如——定義參數可變的方法 111
細節17 有始有終——記憶體中成員變數的運行機制 112
細節18 呼之即來——記憶體中局部變數的運行機制 113
細節19 減少開銷——掌握變數的使用原則 114
細節20 生死相依——對象的引用與銷毀 115
細節21 信息隱蔽——封裝 116
細節22 子承父業——繼承 117
細節23 變化莫測——多態 118
細節24 小心謹慎——向上轉型與向下轉型 120
細節25 功能各異——構造方法與初始化塊 122
細節26 完全不同——重載與重寫 124
細節27 類的模組——抽象類 125
細節28 簡單規範——接口 127
細節29 伸縮自如——面向接口編程 128
細節30 類中有類——成員內部類 129
細節31 無名之類——匿名內部類 130
細節32 清理資源——垃圾回收 131
細節33 有備無患——處理異常 132
細節34 簡單明了——使用自定義異常 135
細節35 安全易懂——枚舉類 137
細節36 獨立存儲——操作Collection集合 138
細節37 映射關係——操作Map集合 142
細節38 獨一無二——使用泛型 144
細節39 出神入化——自定義泛型類 144
細節40 望塵莫及——設定類型形參的上限 145
細節41 難以超越——設定類型通配符的上限 147
細節42 永不退縮——設定類型通配符的下限 148
細節43 異曲同工——創建Class對象 149
細節44 原來如此——用Class對象獲得類信息 150
細節45 別有洞天——使用反射創建對象 151
細節46 無奇不有——通過反射調用方法 153
細節47 出神入化——通過反射訪問欄位 154
第6章 細說開發人員必知必會的 33個開發細節 156
細節1 讀取圖片檔案——顯示流中讀取的圖片 157
細節2 用檔案存儲對象——序列化對象的IO操作 157
細節3 保護屬性——保護序列化對象的屬性 160
細節4 並發控制——創建執行緒 161
細節5 暫停執行緒——執行緒休眠 163
細節6 線上程中執行其他執行緒——執行緒加入 164
細節7 解決執行緒衝突——執行緒同步 166
細節8 更靈活地解決衝突——使用同步鎖 168
細節9 協調運行——執行緒通信 169
細節10 提高性能——使用執行緒池 171
細節11 獨一無二——獲取IP位址和域名 173
細節12 TCP網路編程——使用套接字 174
細節13 基於UDP編程——使用數據報 177
細節14 多點廣播——實現廣播通信 180
細節15 繪畫的圖紙——圖形上下文 183
細節16 繪製圖像——處理圖像 185
細節17 操作磁碟圖像——使用ImageIO處理圖像 186
細節18 畫龍點睛——使用圖示 187
細節19 不同凡響——繪製列表框的內容 188
細節20 隨心所欲——繪製樹節點圖示 190
細節21 美觀大方——繪製表格的單元格內容 191
細節22 秩序井然——表格列的排序 193
細節23 靜觀其變——監聽文本控制項中內容的變化 194
細節24 合情合理——使用格式文本框 195
細節25 後台運行——使用系統托盤 196
細節26 首當其衝——載入資料庫驅動與建立連線 198
細節27 究其根源——傳遞SQL語句 199
細節28 為我所用——操作結果集 200
細節29 隨心所欲——可滾動的結果集 202
細節30 同命相連——可更新的結果集 203
細節31 才思敏捷——執行預處理語句 205
細節32 擇優錄用——調用存儲過程 207
細節33 同舟共濟——進行事務處理 209
第4篇 編程技巧——程式設計師的神兵利器
第7章 細說開發人員必知必會的19個基本技能開發技巧 212
技巧1 獲得需要的數值——數值的捨入處理 213
技巧2 格式化數值——使用NumberFormat 214
技巧3 格式化日期——使用DateFormat 215
技巧4 長度不等於個數——統計字元串的實際長度 216
技巧5 計算最大天數——判斷指定年月的最大天數 217
技巧6 實現遞歸——使用Stack實現遞歸方法功能 218
技巧7 大寫金額——小寫金額轉換為大寫金額 219
技巧8 漢字區位碼——漢字轉換為區位碼 220
技巧9 區位轉漢字——區位碼轉換為漢字 221
技巧10 異或加解密——使用異或進行加密與解密 222
技巧11 字元串加解密——使用String類加解密 223
技巧12 有效的身份證號——驗證18位身份證格式 224
技巧13 正確的IP位址——驗證IP位址的有效性 226
技巧14 正確的E-mail——用正則表達式判斷信箱 226
技巧15 有效的郵編——使用正則表達式判斷郵編 227
技巧16 去除空格——去除字元串的全部空格 228
技巧17 逆序輸出——反轉字元串 229
技巧18 中英文判斷——判斷字元是英文還是漢字 229
技巧19 自動編號——根據計算機信息生成編號 230
第8章 細說開發人員必知必會的31個互動式開發技巧 232
技巧1 與省市級聯的市縣——根據省/直轄市顯示對應的市縣 233
技巧2 受限的文本框——限制可輸入字元個數的文本框 234
技巧3 防止數據丟失——關閉窗體前提示 235
技巧4 美化窗體——設定窗體的背景 236
技巧5 特殊按鈕——製作不規則按鈕 237
技巧6 背景工具列——製作帶背景的工具列 238
技巧7 受限的窗體——限制窗體的大小 239
技巧8 透明窗體——設定窗體透明度 240
技巧9 啟動界面——實現系統閃屏 240
技巧10 輔助錄入——使用回車鍵移動焦點 242
技巧11 數值輸入——只能輸入數值的文本框 242
技巧12 鎖定列標題——使表格的列標題不能移動 243
技巧13 修飾表格——製作帶背景圖片的表格 244
技巧14 謎語猜猜看——猜謎語 245
技巧15 運行外部程式——運行執行檔 248
技巧16 打開網頁——運行網頁 249
技巧17 播放音頻——音頻播放程式 250
技巧18 幸運抽獎——隨機抽取雙色球號碼 251
技巧19 有記憶功能的選單——帶歷史記錄的選單 252
技巧20 導航主界面——按鈕導航界面 254
技巧21 樹形主界面——樹形導航界面 255
技巧22 關機操作——關閉、重啟和註銷計算機 257
技巧23 節省資源——定時關機 258
技巧24 定時聽音樂——定時播放MP3 259
技巧25 定時提醒——鬧鈴程式 260
技巧26 保護資源——鎖屏程式 261
技巧27 重要日期提醒——時間提示程式 262
技巧28 窗體居中——在螢幕上居中顯示窗體 263
技巧29 帶行標題表格——有多列行標題欄的表格 264
技巧30 選擇數據——雙擊單元格顯示組合框 266
技巧31 指定列寬——設定表格指定列的寬度 268
第9章 細說開發人員必知必會的19個資料庫開發套用技巧 270
技巧1 提高組合框添加數據的效率——向組合框添加列表項的通用類 271
技巧2 表格快速顯示數據的工具——在表格中 顯示數據的通用類 272
技巧3 提高系統性能——最佳化SQL語句 274
技巧4 使用JDBC事務——批量運算元據記錄 275
技巧5 解決亂碼——防止MySQL亂碼 276
技巧6 保護數據——備份與恢復MySQL資料庫 278
技巧7 存儲圖片檔案——在資料庫中存儲圖片 279
技巧8 讀取圖片檔案——從資料庫中讀取圖片 281
技巧9 存儲純文本檔案——將純文本檔案存儲到資料庫中 282
技巧10 讀取純文本檔案——從資料庫中讀取純文本檔案 283
技巧11 存儲特殊字元——存儲含特殊字元的信息 284
技巧12 資源定位——獲取指定區間的記錄 285
技巧13 分組排序——分組統計與排序 286
技巧14 顯示所有表——獲取資料庫中的所有表 287
技巧15 多表查詢——進行多表連線查詢 289
技巧16 分析表結構——獲得表結構信息 290
技巧17 提高數據處理速度——調用存儲 過程計算員工的平均年齡 291
技巧18 存儲Date對象——在資料庫中存儲Date日期對象 293
技巧19 讀取資料庫的dateTime列——獲取資料庫中 datetime列的數據 294
第10章 細說開發人員必知必會的18個檔案與網路開發技巧 296
技巧1 檔案列表——使用樹顯示本地檔案列表 297
技巧2 備份檔案——複製檔案 300
技巧3 更改位置——移動檔案 302
技巧4 廢棄的檔案——刪除檔案 302
技巧5 備份資料夾——複製整個資料夾 303
技巧6 清理資料夾——刪除整個資料夾 304
技巧7 更改位置——移動整個資料夾 305
技巧8 檔案瘦身——壓縮與解壓縮檔案 306
技巧9 資料夾瘦身——壓縮與解壓縮資料夾 308
技巧10 解決衝突——實現檔案鎖定 310
技巧11 所占空間——獲取資料夾大小 311
技巧12 解決讀寫檔案亂碼——用DataInputStream和 DataOutputStream類
技巧12 讀寫檔案亂碼 311
技巧13 解決讀檔案亂碼——使用FileReader讀檔案亂碼 313
技巧14 網路傳遞漢字——使用Socket傳遞漢字 313
技巧15 網路傳遞對象——使用Socket傳遞對象 315
技巧16 網路操作——獲取網路資源的大小 317
技巧17 操作網頁——解析網頁中的內容 318
技巧18 下載資源——網路資源的下載 319
第11章 細說開發人員必知必會的10個圖形圖像與動畫程式開發技巧 321
技巧1 防止攻擊——生成驗證碼 322
技巧2 防止攻擊——使用反射載入生成的驗證碼 323
技巧3 動態載入——在文本框中動態載入文本 324
技巧4 鍵盤操作圖片——通過鍵盤移動圖片 326
技巧5 圖片動畫——隨滑鼠移動圖片 327
技巧6 圖片動畫——跑馬燈效果 329
技巧7 換圖動畫——不斷變化的圖片 331
技巧8 文字特效——文字淡入淡出 333
技巧9 縮放特效——實現文字縮放動畫 334
技巧10 圖片顯示特效——淡入淡出的圖片 336
第5篇 算法與效率——程式設計師的得力助手
第12章 細說開發人員必須掌握的20個常用算法 340
算法1 排序算法——起泡排序 341
算法2 排序算法——選擇排序 344
算法3 排序算法——插入排序 347
算法4 排序算法——歸併排序 350
算法5 查找算法——順序查找 353
算法6 查找算法——二分查找 357
算法7 後進先出——堆疊 358
算法8 單線聯繫——單向鍊表算法 365
算法9 雙線聯繫——雙向鍊表算法 369
算法10 先進先出——佇列 373
算法11 層層相連——樹 376
算法12 算法套用——素數 382
算法13 趨近理想的查找——散列技術 384
算法14 算法套用——漢諾塔 387
算法15 算法套用——斐波那契數列 388
算法16 算法套用——水仙花樹 389
算法17 算法套用——百錢買百雞 390
算法18 算法套用——韓信點兵 391
算法19 加密算法——SHA加密 392
算法20 加密算法——MD5加密 394
第6篇 解決方案——前人的經驗精髓
第13章 登錄、帶許可權主界面和軟體註冊實施方案 398
方案1 安全登錄——實現系統登錄 399
方案2 限制用戶——帶許可權的主界面 404
方案3 隨機應變——在閃屏界面中繪製啟動信息 407
方案4 註冊程式——應用程式註冊 411
第14章 檔案和圖形圖像處理解決方案 419
方案1 畫龍點睛——實現水印 420
方案2 處理大檔案——檔案的分割與合併 423
方案3 批量操作——檔案批量處理 429
方案4 畫圖程式——簡易畫圖板 452
第15章 相冊照片管理和遊戲開發解決方案 457
方案1 相冊管理——精美相冊 458
方案2 管理照片——數碼照片 468
方案3 合情合理——拼圖遊戲 478
第16章 資料庫套用、安全與列印報表實施方案 484
方案1 數據表結構——MySQL表結構提取器 485
方案2 安全管理——MySQL資料庫的自動備份與恢復 495
方案3 線上考試——考試系統 507
方案4 列印數據——報表列印 528

相關詞條

熱門詞條

聯絡我們