《Java必須知道的300個問題是》
基本介紹
- 書名:Java必須知道的300個問題
- ISBN:9787302276692
- 定價:49.8元
- 出版時間:2011-12-28
- 裝幀:平裝
- 印次:1-1
圖書簡介,前言,目錄,
圖書簡介
本書以基礎知識為框架,介紹了各部分知識所對應的常見開發疑難問題,並作了透徹地解析。主要內容包括Java語言概述、Eclipse開發工具、Java語言基礎、流程控制、數組、面向對象入門、面向對象進階、字元串與包裝類、Java集合類框架、常用數學工具類、異常處理、輸入/輸出、枚舉類型與泛型、Swing入門、多執行緒、網路通信和資料庫操作。
書中列出的300個問題,都是一線開發人員在實際項目中經常會遇到的疑難問題。針對這些問題,本書給出了詳盡的解決方案,並進行了技術上的解析。通過對本書的學習,能夠幫助讀者迅速提高解決實際問題的能力。
本書提供了大量的源程式、素材,提供了相關的模組庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。
本書內容詳盡,對於較難理解的內容,配合實例進行講解,適合作為Java初學者的輔助教材,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。
前言
學會站在巨人的肩膀上!
程式設計師在求職時,經常會被問到有關開發經驗的問題。例如,“從事了多少年的開發?”“參與了哪些大型項目?”……為何面試官對項目經驗豐富的求職者青睞有加?究其根源,是由於程式開發是一門實踐性非常強的學科。“紙上得來終覺淺,絕知此事要躬行”,編程經驗是程式開發者在長期的實踐中逐步積累的、屬於自己的技術資源庫,其中包括各種習慣用法、知識理論、代碼片段、套用技巧等。要想成為經驗豐富的編程高手,除了勤學苦練,也要學會站在前人的肩膀上,分析別人的代碼而有所領悟,或者借鑑他人的經驗技巧形成自己的技能,在認識錯誤與解決問題中進步。這也是每個編程者的必經之路。
本書匯集了300個一線開發人員常見的疑難問題,每個問題都給出了詳細的解答與點評,圖文並茂、難易並舉。通過學習本書,您可以盡享前人的開發經驗,迅速提升個人的開發能力。
本書內容
本書以基礎知識為框架,介紹了各部分知識中所對應的常見開發疑難問題,並作了透徹地解析。全書共分為17章,主要內容包括Java語言概述、Eclipse開發工具、Java語言基礎、流程控制、數組、面向對象入門、面向對象進階、字元串與包裝類、Java集合類框架、常用數學工具類、異常處理、輸入/輸出、枚舉類型與泛型、Swing入門、多執行緒、網路通信和資料庫操作。
為了更清晰地闡述問題並給出詳盡的解決方案,本書設定了以下欄目。
* 問題闡述:對問題進行詳細闡述,對複雜問題給出問題產生條件,並對問題中需要解決的部分作出說明。
* 專家解答:根據問題進行具體分析,給出解題思路及正確答案,並提供該問題涉及的技術知識。
* 專家點評:對問題及解答進行總結,為以後解決問題提供思路;此外,還會列出一些此問題應該注意的事項,以及對該問題的一些拓展。
本書特色
* 貼近套用。本書精選的疑難問題都是在實際項目開發中經常會遇到的,目的就是為讀者答疑解惑。
* 橫向連結。本書知識框架與《Java開發入門及項目實戰》一書對應,可以在使用《Java開發入門及項目實戰》一書進行基礎學習之後,再用本書豐富並提高技能。
* 解析透徹。本書對每個問題的相關知識都作了細緻地講解,並進行知識拓展,使讀者不僅知其然而且知其所以然。
* 授人以漁。本書在講解技術的同時,還注重對讀者能力的培養,幫助其掌握分析問題與解決問題的能力。
本書配套資源
本書提供了內容豐富的配套資源,包括源程式、素材,以及模組庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。
第1種方式:
(1)登錄清華大學出版社的網站,在網頁右上角的搜尋文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線“-”),單擊“搜尋”按鈕。
(2)找到本書後單擊超連結,在該書的網頁下側單擊“網路資源”超連結,即可下載。
第2種方式:
訪問本書的新浪微博Javamrbook,找到配套資源的連結地址進行下載。
讀者人群
本書非常適合以下人員閱讀:
* 從事Java語言編程的開發人員
* 有一定語言基礎,想進一步提高技能的人員
* 大中專院校的老師和學生
* 即將走上相關工作崗位的大學畢業生
* 相關培訓機構的老師和學員
* Java語言編程愛好者
目錄
第1章 Java語言概述 1
問題1 Java語言有哪些特性? 2
問題2 如何選擇Java的分支? 2
問題3 如何學好Java語言? 3
問題4 如何安裝JDK? 4
問題5 如何測試JDK是否配置成功? 7
第2章 Eclipse開發工具 9
問題6 常用的Java開發工具包括
哪些? 10
問題7 如何獲得和安裝Eclipse
開發工具? 10
問題8 如何漢化Eclipse? 13
問題9 如何為Eclipse安裝WindowBuilder外掛程式? 14
問題10 如何使用WindowBuilder外掛程式? 16
第3章 Java語言基礎 17
問題11 char類型變數是否能保存
一個漢字? 18
問題12 Java中是否有goto語句? 18
問題13 變數和常量有什麼區別? 19
問題14 語句float num=3.14159
是否正確? 20
問題15 short和char類型的取值
範圍各是多少? 20
問題16 final參數可以修改嗎? 21
問題17 局部變數可以定義私有
修飾類型嗎? 22
問題18 表達式3-2.6 == 0.4的值
是什麼? 23
問題19 自增、自減運算符放在變
量前後的區別是什麼? 24
問題20 用最有效率的方法算出2
乘以16等於幾? 26
問題21 &和&&兩個運算符的區別
是什麼? 27
問題22 運算符=與==有何區別? 28
問題23 能正確編譯“short s = 1;
s = s + 1;”嗎? 29
問題24 表達式9/2與9/2.0的結
果是否相等? 30
問題25 如何判斷一個整數是奇數
還是偶數? 31
問題26 不使用循環和條件語句如
何求1+2+…+n的值? 32
問題27 複合賦值運算符+=計算的
結果一定正確嗎? 33
問題28 兩個整數相乘的結果一定
正確嗎? 34
問題29 如何使用位運算符計算2
的n次冪? 35
問題30 如何自定義類實現數值的
四捨五入? 36
第4章 流程控制 39
問題31 如何套用if語句判斷某一
年是否為閏年? 40
問題32 if語句如何進行嵌套使用? 41
問題33 是否可以進行字元與編碼
的比較? 42
問題34 如何修改失敗的if…else語句? 43
問題35 兩個if語句為什麼運行結
果不一樣? 44
問題36 可以用switch分支語句代
替if條件語句嗎? 45
問題37 switch語句的條件表達式
有哪些類型? 46
問題38 如何防止switch分支之間
的串聯? 48
問題39 如何定義滿足條件的變數? 49
問題40 while與do…while語句的
區別是什麼? 50
問題41 為什麼會出現死循環? 51
問題42 死循環屬不屬於合法的循環? 52
問題43 如何確定是使用for循環
還是while循環? 53
問題44 如何編程實現圖形輸出? 54
問題45 如何跳出當前的多重嵌
套循環? 56
問題46 for循環中定義的變數的
作用範圍是什麼? 57
問題47 如何編程解決李白提壺買
酒的問題? 57
問題48 如何編程計算黃蓉難倒瑛
姑的數學題? 59
問題49 break語句和continue語句
有什麼區別? 60
問題50 如何編程列印出7行的
楊輝三角? 60
第5章 數組 62
問題51 如何聲明和初始化數組? 63
問題52 數組元素默認的初始值都
是什麼? 65
問題53 如何獲取二維數組的行、
列數? 66
問題54 如何使用for循環和簡易
for循環遍歷一維數組? 68
問題55 如何將數組arr1中的部分數據
成員複製到數組arr2中? 70
問題56 如何獲取一維數組中的最大
值和最小值? 71
問題57 如何進行數組查找? 72
問題58 數組的排序算法有哪些?
如何實現? 74
問題59 存儲相同數據量的一維數組和
二維數組所占記憶體是否相同? 80
問題60 為什麼下面的代碼會出現
數組下標越界異常? 82
第6章 面向對象入門 84
問題61 面向對象的特徵有哪些? 85
問題62 為什麼需要面向對象? 86
問題63 什麼是面向對象編程? 87
問題64 什麼是類? 88
問題65 類和對象的區別是什麼? 89
問題66 抽象類與抽象方法有什麼作用? 89
問題67 如何設定類成員訪問許可權? 91
問題68 構造方法有何作用? 92
問題69 什麼是方法重載? 93
問題70 如何定義類的成員變數和方法? 95
問題71 變數的作用範圍是什麼? 96
問題72 類的成員變數和方法的命
名規範是什麼? 98
問題73 只能通過構造方法創建對象嗎? 99
問題74 什麼是Java應用程式的主類? 100
問題75 如何隱藏類的屬性,使其
不會被其他類使用? 101
問題76 什麼是靜態變數和靜態常量? 103
問題77 什麼是靜態方法? 105
問題78 靜態語句塊有什麼作用? 106
問題79 如何訪問類的成員變數和方法? 107
問題80 如何在一個類中訪問另一
個類的方法? 109
第7章 面向對象進階 111
問題81 是值傳遞還是引用傳遞? 112
問題82 final參數可以被修改嗎? 113
問題83 接口和抽象類有何區別? 114
問題84 如何調用父類的構造方法? 115
問題85 如何操作被隱藏的成員變數
和被重寫的成員方法? 116
問題86 什麼是方法的重寫,以及
如何實現方法重寫? 118
問題87 final、finally和finalize有
什麼區別? 119
問題88 Java中如何模擬多重繼承? 120
問題89 Java中如何使用clone()
方法克隆對象? 122
問題90 有兩種方式可以實現深
克隆,其效率如何? 127
問題91 內部類是否可以被繼承? 129
問題92 如何調用內部類和外部
類同名的成員? 130
問題93 什麼是匿名內部類,以及
如何定義匿名內部類? 132
問題94 如何創建Class對象? 133
問題95 如何通過反射獲取類的信息? 134
問題96 如何使用反射創建對象? 135
問題97 如何通過反射調用方法? 138
問題98 如何通過反射訪問欄位
(成員變數)? 139
問題99 在Java語言規範中,對
equals()方法有何要求? 141
問題100 如何重寫equals()方法? 141
第8章 字元串與包裝類 144
問題101 什麼是自動裝包/拆包? 145
問題102 int和Integer有什麼區別? 145
問題103 String是Java的基本數
據類型嗎? 146
問題104 表達式"3+5=" + 3 + 5的
返回值是什麼? 146
問題105 Java中String str = null與
String str = ""的區別是什麼? 147
問題106 String類是否可以被繼承? 147
問題107 如何實現字元串的大小
寫轉換? 148
問題108 如何實現字元串的反向輸出? 149
問題109 運算符“==”與equals()
比較對象的區別是什麼? 150
問題110 判斷字元串是否為空有
幾種方式? 152
問題111 如何實現對日期的格式化? 153
問題112 如何實現對時間變數的
格式化? 155
問題113 如何實現日期或時間組
合的格式化? 156
問題114 如何實現常規類型數據
的格式化? 157
問題115 如何實現對電話號碼有
效性的驗證? 158
問題116 如何實現對手機號碼的驗證? 160
問題117 如何實現對IP位址有效
性的驗證? 161
問題118 如何實現字元串類型和
數值類型的轉換? 163
問題119 如何去掉字元串中的空格? 164
問題120 如何獲取子字元串? 165
問題121 如何判斷字元串中是否
包含數字? 166
問題122 如何實現各進制間的轉換? 168
問題123 String與StringBuilder
的區別是什麼? 169
問題124 如何替換字元串中的內容? 170
問題125 如何獲取指定編碼格式
的字元串? 172
問題126 如何實現漢字轉區位碼? 173
問題127 如何實現區位碼轉漢字? 175
問題128 如何實現字元串加密? 176
問題129 如何判斷字元是英文
還是漢字? 177
問題130 如何實現大小寫金額
之間的轉換? 178
第9章 Java集合類框架 180
問題131 數組的效率一定比集合
類高嗎? 181
問題132 數組和集合類之間如何轉換? 182
問題133 數組與ArrayList有區別嗎? 183
問題134 Collection和Collections
的區別是什麼? 184
問題135 有哪些方式可用於遍
歷集合類? 185
問題136 List接口的實現類之間的
繼承關係如何? 188
問題137 Iterator接口和ListIterator
接口有何區別? 189
問題138 Iterator和Enumeration的
區別是什麼? 190
問題139 ArrayList和LinkedList的
區別是什麼? 190
問題140 ArrayList和Vector的區別
是什麼? 191
問題141 Queue接口的實現類之
間的繼承關係如何? 192
問題142 Set接口的實現類之間的
繼承關係如何? 193
問題143 如何使用TreeSet實現排
序功能? 194
問題144 常用Set接口實現類是否
支持執行緒同步? 196
問題145 Map接口有何特性? 197
問題146 Map和Hashtable有何區別? 198
問題147 如何獲得Map中全部鍵? 198
問題148 如何獲得Map中全部值? 199
問題149 如何獲得Map中全部
鍵值對? 200
問題150 如何自定義TreeMap
排序方式? 201
第10章 常用數學工具類 203
問題151 常見數制包括哪些?相
互間如何轉換? 204
問題152 什麼是原碼、反碼和補碼? 205
問題153 計算機如何保存浮點數? 207
問題154 Math類與StrictMath類
有何異同? 208
問題155 計算機中浮點數是連續的嗎? 210
問題156 什麼是隨機數?Java支
持隨機數嗎? 211
問題157 如何完成高精度整數運算? 213
問題158 如何設定數字的捨入模式? 215
問題159 如何完成高精度浮點數運算? 216
問題160 如何格式化數字? 219
第11章 異常處理 222
問題161 什麼是異常? 223
問題162 Java中的異常如何分類? 223
問題163 如何使用try…catch捕獲
並處理異常? 225
問題164 try…catch…finally是如何
處理異常的? 226
問題165 使用try…finally能處理異
常嗎? 228
問題166 如何使用throws關鍵字聲
明方法拋出的異常? 230
問題167 如何使用throw關鍵字在
方法中拋出異常? 231
問題168 關鍵字throw與throws的
用法有什麼差異? 233
問題169 如何創建自定義異常類? 233
問題170 異常處理機制有哪些優勢? 234
第12章 輸入/輸出 235
問題171 什麼是流? 236
問題172 Java中與流相關的類有
哪些? 236
問題173 如何使用位元組流複製檔案? 239
問題174 如何使用字元流複製文
本檔案? 240
問題175 如何提高字元複製效率? 242
問題176 如何求和文本檔案中的數字? 243
問題177 如何從控制台接收密碼? 244
問題178 如何獲得指定格式的
字元串? 245
問題179 如何使用數據流? 249
問題180 如何使用對象流? 252
問題181 transient關鍵字有何作用? 254
問題182 如何查看Windows硬
盤空間? 256
問題183 如何查看檔案的屬性? 258
問題184 如何修改檔案的屬性? 259
問題185 如何在磁碟上創建檔案? 261
問題186 如何創建臨時檔案? 262
問題187 如何獲得磁碟中全部檔案? 263
問題188 如何獲得指定類型的檔案? 265
問題189 如何刪除指定類型的檔案? 266
問題190 如何使用ZIP格式壓縮
資料夾? 267
問題191 如何解壓縮ZIP格式檔案? 269
問題192 如何在代碼中增加行號? 270
問題193 如何比較原始碼中不同之處? 272
問題194 如何使用
Sequence InputStream類? 273
問題195 如何使用StreamTokenizer類? 275
問題196 如何讀取屬性檔案的值? 276
問題197 為何需要新IO?它有哪
些核心對象? 277
問題198 如何使用新IO讀、寫、
複製數據? 278
問題199 緩衝區內部是如何實現的? 281
問題200 什麼是記憶體映射檔案IO? 282
第13章 枚舉類型與泛型 284
問題201 什麼是枚舉類型?如何
定義枚舉類型? 285
問題202 Java中的枚舉類型有哪
些優勢? 286
問題203 如何在枚舉中定義域
和方法? 286
問題204 如何將枚舉和switch語
句塊組合使用? 287
問題205 泛型是如何提高程式健
壯性的? 289
問題206 類型參數命名時有哪些
要求? 291
問題207 如何限制類型參數
範圍? 292
問題208 泛型是否是協變的? 293
問題209 類型通配符有何作用? 294
問題210 泛型中的擦除是指什麼? 295
第14章 Swing入門 296
問題211 Swing中的控制項可以直
接顯示嗎? 297
問題212 Swing中有哪些文本控制項? 297
問題213 如何使用鍵盤來操作文
本控制項? 298
問題214 如何限制文本域中輸入
字元的長度? 299
問題215 如何提示文本框中還有
多少字元可用? 300
問題216 如何設定按鈕上文本和
圖示的位置? 302
問題217 如何使用Swing中的按
鈕控制項? 303
問題218 如何使用單選按鈕控制項? 304
問題219 如何向組合框中添加數據? 305
問題220 如何處理組合框選擇事件? 306
問題221 如何實現仿Word 2007
字型列表? 307
問題222 如何使用信息提示對話框? 309
問題223 如何使用支持樣式的文
本控制項? 311
問題224 如何在選擇圖片時支持
預覽功能? 313
問題225 如何實現自動排序的列表? 314
問題226 如何修改表格的字型和
行高度? 315
問題227 如何獲得用戶修改後的
單元格值? 316
問題228 如何在表格單元格中顯
示組合框? 317
問題229 如何在表格控制項中使用分頁? 318
問題230 如何實現固定列表格? 321
問題231 如何實現單詞自動補全功能? 323
問題232 如何實現文本域查找功能? 325
問題233 如何使用JTree控制項顯示
檔案結構? 327
問題234 如何使用GridBagLayout
布局管理器? 329
問題235 如何自定義布局管理器? 333
問題236 如何根據顯示器大小決
定窗體大小? 334
問題237 如何自定義窗體按鈕? 335
問題238 如何繪製橢圓形窗體? 339
問題239 如何實現窗體的自動隱
藏功能? 340
問題240 如何實現閃屏功能? 342
問題241 如何實現系統托盤功能? 343
問題242 如何判斷用戶單擊了
滑鼠的哪個鍵? 345
問題243 如何實現標籤的跑馬
燈效果? 346
問題244 如何實現延遲生效的按鈕? 347
問題245 如何查看當前系統支持
的外觀? 348
第15章 多執行緒 350
問題246 如何實現新建執行緒? 351
問題247 如何實現啟動執行緒? 351
問題248 Java中執行緒的屬性有什
么作用? 352
問題249 什麼情況可以導致線
程停止? 353
問題250 調用run()方法可以啟動
執行緒嗎? 353
問題251 Object類中提供了哪些
執行緒相關方法? 355
問題252 什麼是執行緒同步? 355
問題253 什麼是執行緒死鎖? 357
問題254 哪些接口可以創建有返
回值的執行緒? 358
問題255 哪個類可用於創建執行緒池? 360
問題256 Swing是執行緒安全的嗎? 361
問題257 使用執行緒池存在哪些風險? 361
問題258 如何創建後台執行緒? 363
問題259 如何使正在運行的
執行緒休眠? 364
問題260 如何終止執行緒? 366
問題261 什麼是執行緒的掛起、恢復? 367
問題262 同步和異步有何不同? 368
問題263 如何使用同步鎖解決
共享資源的衝突? 368
問題264 使用SwingWorker類時
必須重寫哪個方法? 370
問題265 什麼時候會涉及執行緒程式? 371
第16章 網路通信 372
問題266 按通信距離,網路是怎樣
劃分的? 373
問題267 區域網路的主要特點是什麼? 373
問題268 廣域網的主要特點是什麼? 374
問題269 常用的網路拓撲結構有哪些? 374
問題270 ISO/OSI參考模型各層的
功能是什麼? 376
問題271 TCP/IP參考模型對OSI參
考模型的改進有哪些? 377
問題272 IP位址是如何劃分的?
可以分為哪幾類? 378
問題273 如何獲得區域網路的所有
IP位址? 379
問題274 怎樣獲取網路資源的大小? 381
問題275 如何實現網路資源的多
執行緒下載? 382
問題276 如何實現下載網路資源
的斷點繼傳? 384
問題277 如何使用Socket傳輸圖片? 387
問題278 如何實現基於Socket的
資料庫編程? 388
問題279 如何實現聊天室伺服器端? 391
問題280 如何實現聊天室客戶端? 393
第17章 資料庫操作 396
問題281 什麼是資料庫驅動? 397
問題282 JDBC驅動程式類型如
何區分? 397
問題283 Java程式如何實現調用
存儲過程? 398
問題284 SQL Server資料庫幾種登錄方式之間的區別有哪些? 400
問題285 資料庫管理系統、資料庫
系統的區別? 401
問題286 Statement和PreparedStatement的區別? 402
問題287 如何通過JDBC控制數據
庫事務? 402
問題288 Java程式如何獲得表結構? 403
問題289 如何實現在資料庫中存
儲圖片? 405
問題290 如何實現從資料庫中讀
取圖片? 407
問題291 如何實現最佳化SQL語句? 408
問題292 如何防止MySQL資料庫
亂碼問題? 409
問題293 如何實現將純文本檔案
存儲到資料庫中? 411
問題294 如何實現從資料庫中讀
取純文本? 413
問題295 如何獲取資料庫中的所有表? 414
問題296 如何實現備份與恢復
MySQL資料庫? 416
問題297 如何實現多表連線查詢? 418
問題298 如何實現去除重複行? 419
問題299 如何實現在資料庫中
存儲日期對象? 420
問題300 如何實現讀取資料庫
中的日期欄位? 422