注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計JAVA及其相關瘋狂Java講義

瘋狂Java講義

瘋狂Java講義

定 價:¥99.00

作 者: 李剛 編著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: J2EE

ISBN: 9787121066467 出版時間: 2008-10-01 包裝: 平裝
開本: 16開 頁數(shù): 889 字數(shù):  

內(nèi)容簡介

  從2000年至今,Java語言一直是應用最廣的開發(fā)語言,并擁有最廣泛的開發(fā)人群。如今,Java已經(jīng)不再簡單地是一門語言,它更像一個完整的體系,一個系統(tǒng)的開發(fā)平臺。更甚至,它被延伸成一種開源精神。本書深入介紹了Java編程的相關方面,全書內(nèi)容覆蓋了Java的基本語法結(jié)構(gòu)、Java的面向?qū)ο筇卣?、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數(shù)據(jù)庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網(wǎng)絡通信編程和Java反射機制。共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和接口。本書并不單純從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以本書中介紹了大量實用案例開發(fā):五子棋游戲、梭哈游戲、仿QQ的游戲大廳、MySQL企業(yè)管理器、仿EditPlus的文本編輯器、多線程、斷點下載工具、Spring框架的IoC容器……這些案例既能讓讀者鞏固每章的知識,又可以讓讀者學以致用、激發(fā)編程自豪感,進而引爆內(nèi)心的編程激情。本書光盤里包含書中所有示例的代碼,如果讀者希望獲得課后練習的程序代碼。本書為所有打算深入掌握Java編程的讀者而編寫,適合各種層次的Java學習者和工作者閱讀,也適合作為大學教育、培訓機構(gòu)的Java教材。但如果只是想簡單涉獵Java,則本書過于龐大,不適合閱讀。

作者簡介

  李剛從事8年的Java EE應用開發(fā)?!≡蜭ITEON公司的J2EE技術主管,負責該公司的企業(yè)信息平臺的架構(gòu)設計。曾任廣州電信、廣東龍泉科技等公司的技術培訓導師。2007年3月26日的《電腦報》專訪人物?,F(xiàn)任新東方IT培訓廣州中心軟件教學總監(jiān),曾兼任廣東技術師范學院計算機科學系的兼職副教授。培訓的學生已在華為、立信、普信、網(wǎng)易、電信盈科、中企動力等公司就職。國內(nèi)知名的高端IT技術作家,已出版《Spring2.0寶典》、《基于J2EE的Ajax寶典》、《輕量級J2EE企業(yè)應用實戰(zhàn)》、《Struts 2權威指南》、《Ruby On Rails敏捷開發(fā)最佳實踐》等著作。

圖書目錄

第1章  Java概述 1
1.1  Java語言的發(fā)展簡史 2
1.2  Java的競爭對手及各自優(yōu)勢 4
1.2.1  C#簡介和優(yōu)勢 4
1.2.2  Ruby簡介和優(yōu)勢 4
1.2.3  Python的簡介和優(yōu)勢 5
1.3  Java程序運行機制 5
1.3.1  高級語言的運行機制 6
1.3.2  Java程序的運行機制和JVM 6
1.4  開發(fā)Java的準備 7
1.4.1  安裝JDK 8
學生提問:不是說JVM是運行Java程序的虛擬機嗎?那JRE和JVM的關系是怎樣的呢?  8
學生提問:為什么不安裝公共JRE系統(tǒng)呢? 9
1.4.2  設置PATH環(huán)境變量 10
學生提問:為什么選擇設置用戶變量,用戶變量和系統(tǒng)變量有什么區(qū)別呢? 11
1.5  第一個Java程序 12
1.5.1  編輯Java源代碼 12
1.5.2  編譯Java程序 13
學生提問:當我們使用編譯C程序時,不僅需要指定存放目標文件的位置,也需要指定目標文件的文件名,這里使用javac編譯Java程序時怎么不需要指定目標文件的文件名呢?   13
1.5.3  運行Java程序 14
1.5.4  根據(jù)CLASSPATH環(huán)境變量定位類 15
1.6  Java程序的基本規(guī)則 16
1.6.1  Java程序的組織形式 16
1.6.2  Java源文件的命名規(guī)則 17
1.6.3  初學者容易犯的錯誤 18
1.7  垃圾回收機制 20
1.8  何時開始使用IDE工具 21
學生提問:老師,我想學習Java編程,到底是學習Eclipse好呢,還是學習JBuilder好呢? 21
1.9  本章小結(jié) 22
本章練習 22
第2章  理解面向?qū)ο?nbsp;23
2.1  面向?qū)ο?nbsp;24
2.1.1  結(jié)構(gòu)化程序設計簡介 24
2.1.2  程序的三種基本結(jié)構(gòu) 25
2.1.3  面向?qū)ο蟪绦蛟O計簡介 27
2.1.4  面向?qū)ο蟮幕咎卣?nbsp;28
2.2  UML(統(tǒng)一建模語言)介紹 29
2.2.1  用例圖 30
2.2.2  類圖 31
2.2.3  組件圖 33
2.2.4  部署圖 33
2.2.5  順序圖 34
2.2.6  活動圖 34
2.2.7  狀態(tài)機圖 36
2.3  Java的面向?qū)ο筇卣?nbsp;36
2.3.1  一切都是對象 37
2.3.2  類和對象 37
2.4  本章小結(jié) 37
第3章  數(shù)據(jù)類型和運算符 38
3.1  注釋 39
3.1.1  單行注釋和多行注釋 39
3.1.2  文檔注釋 40
學生提問:API文檔是什么? 40
學生提問:為什么要掌握查看API文檔的方法? 42
3.2  標識符和關鍵字 45
3.2.1  分隔符 45
3.2.2  標識符規(guī)則 47
3.2.3  Java關鍵字 47
3.3  數(shù)據(jù)類型分類 48
3.4  基本數(shù)據(jù)類型 48
3.4.1  整型 49
3.4.2  字符型 49
3.4.3  浮點型 51
3.4.4  布爾型 52
3.5  基本類型的類型轉(zhuǎn)換 53
3.5.1  自動類型轉(zhuǎn)換 53
3.5.2  強制類型轉(zhuǎn)化 54
3.5.3  表達式類型的自動提升 56
3.6  直接量 57
3.6.1  直接量的類型 57
3.6.2  直接量的賦值 58
3.7  運算符 58
3.7.1  算術運算符 58
3.7.2  賦值運算符 61
3.7.3  位運算符 62
3.7.4  擴展后的賦值運算符 64
3.7.5  比較運算符 65
學生提問:Java為什么要對這些數(shù)據(jù)進行緩存呢? 67
3.7.6  邏輯運算符 67
3.7.7  三目運算符 68
3.7.8  運算符的結(jié)合性和優(yōu)先級 69
3.8  本章小結(jié) 70
本章練習 70
第4章  流程控制和數(shù)組 71
4.1  順序結(jié)構(gòu) 72
4.2  分支結(jié)構(gòu) 72
4.2.1  if條件語句 72
4.2.2  switch分支語句 76
4.3  循環(huán)結(jié)構(gòu) 78
4.3.1  while循環(huán)語句 78
4.3.2  do while循環(huán)語句 79
4.3.3  for循環(huán) 80
4.3.4  嵌套循環(huán) 83
4.4  控制循環(huán)結(jié)構(gòu) 84
4.4.1  使用break結(jié)束循環(huán) 84
4.4.2  使用continue結(jié)束本次循環(huán) 86
4.4.3  使用return結(jié)束方法 87
4.5  數(shù)組類型 87
4.5.1  理解數(shù)組:數(shù)組也是一種類型 88
學生提問:int[]是一種類型嗎?怎么使用這種類型呢? 88
4.5.2  定義數(shù)組 88
4.5.3  數(shù)組的初始化 89
學生提問:能不能只分配內(nèi)存空間,不賦初始值呢?89
4.5.4  使用數(shù)組 90
學生提問:為什么要我記住這些異常信息? 91
4.5.5  JDK1.5提供了foreach循環(huán) 91
4.6  深入數(shù)組 93
4.6.1  內(nèi)存中的數(shù)組 93
學生提問:為什么有棧內(nèi)存和堆內(nèi)存之分? 93
4.6.2  基本類型數(shù)組的初始化 95
4.6.3  引用類型數(shù)組的初始化 96
4.6.4  沒有多維數(shù)組 99
學生提問:我是否可以讓圖4.13中灰色覆蓋的數(shù)組元素再次指向另一個數(shù)組?這樣不可以擴展成三維數(shù)組嗎?甚至擴展到更多維的數(shù)組? 101
4.6.5  操作數(shù)組的工具類 102
4.6.6  數(shù)組的應用舉例 103
4.7  本章小結(jié) 106
本章練習 106 第5章  面向?qū)ο螅ㄉ希?nbsp;107
5.1  類和對象 108
5.1.1  定義類 108
學生提問:構(gòu)造器不是沒有返回值嗎?為什么不能用void修飾呢? 110
5.1.2  對象的產(chǎn)生和使用 110
5.1.3  對象、引用和指針 111
5.1.4  對象的this引用 112
5.2  方法詳解 116
5.2.1  方法的所屬性 116
5.2.2  方法的參數(shù)傳遞機制 116
5.2.3  形參長度可變的方法 120
5.2.4  遞歸方法 121
5.2.5  方法重載 123
學生提問:為什么方法的返回值類型不能用于區(qū)分重載的方法? 124
5.3  成員變量和局部變量 124
5.3.1  成員變量和局部變量 125
5.3.2  成員變量的初始化和內(nèi)存中的運行機制 128
5.3.3  局部變量的初始化和內(nèi)存中的運行機制 130
5.3.4  變量的使用規(guī)則 130
5.4  隱藏和封裝 132
5.4.1  理解封裝 132
5.4.2  使用訪問控制符 132
5.4.3  package和import 135
5.4.4  Java的常用包 140
5.5  深入構(gòu)造器 140
5.5.1  使用構(gòu)造器執(zhí)行初始化 141
學生提問:構(gòu)造器是創(chuàng)建Java對象的途徑,是不是說構(gòu)造器完全負責創(chuàng)建Java對象? 141
5.5.2  構(gòu)造器的重載 142
學生提問:為什么要用this來調(diào)用另一個重載的構(gòu)造器?我把另一個構(gòu)造器里的代碼復制、粘貼到這個構(gòu)造器里不就可以了嗎? 143
5.6  類的繼承 144
5.6.1 繼承的特點 144
5.6.2  重寫父類的方法 145
5.6.3  父類實例的super引用 146
學生提問:我們只是創(chuàng)建了一個Ostrich對象時,哪來的Bird對象? 147
5.6.4  調(diào)用父類構(gòu)造器 148
學生提問:為什么我創(chuàng)建Java對象時從未感覺到java.lang.Object的構(gòu)造器被調(diào)用過? 150
5.7  多態(tài) 151
5.7.1  多態(tài)性 151
5.7.2  引用變量的強制類型轉(zhuǎn)換 152
5.7.3  instanceof運算符 154
5.8  繼承與組合 154
5.8.1  使用繼承的注意點 155
5.8.2  利用組合實現(xiàn)復用 156
學生提問:使用組合關系來實現(xiàn)復用時,需要創(chuàng)建兩個Animal對象,是不是意味著使用組合關系時系統(tǒng)開銷更大? 159
5.9  初始化塊 159
5.9.1  使用初始化塊 160
5.9.2  初始化塊和構(gòu)造器 161
5.9.3  靜態(tài)初始化塊 162
5.10  本章小結(jié) 165
本章練習 165
第6章  面向?qū)ο螅ㄏ拢?nbsp;166
6.1  基本數(shù)據(jù)類型的包裝類 167
6.2  處理對象 170
6.2.1  打印對象和toString方法 170
6.2.2  ==和equals比較運算符 172
6.3  類成員 175
6.3.1  理解類成員 175
6.3.2  單例(Singleton)類 176
6.4  final修飾符 177
6.4.1  final變量 177
6.4.2  final方法 181
6.4.3  final類 182
6.4.4  不可變類 182
6.4.5  緩存實例的不可變類 186
6.5  抽象類 188
6.5.1  抽象方法和抽象類 188
6.5.2  抽象類的作用 191
6.6  更徹底的抽象:接口 192
6.6.1  接口的概念 192
6.6.2  接口的定義 193
6.6.3  接口的繼承 195
6.6.4  使用接口 195
6.6.5  接口和抽象類 197
6.6.6  面向接口編程 198
6.7  內(nèi)部類 202
6.7.1  非靜態(tài)內(nèi)部類 202
學生提問:非靜態(tài)內(nèi)部類對象和外部類對象的關系是怎樣的? 206
6.7.2  靜態(tài)內(nèi)部類 207
學生提問:為什么靜態(tài)內(nèi)部類實例方法也不能訪問外部類的實例屬性呢? 207
學生提問:接口里是否能定義內(nèi)部接口? 208
6.7.3  使用內(nèi)部類 208
學生提問:既然內(nèi)部類是外部類的成員,是否可以為外部類定義子類,在子類中再定義一個內(nèi)部類來重寫其父類中的內(nèi)部類? 211
6.7.4  局部內(nèi)部類 211
6.7.5  匿名內(nèi)部類 212
6.7.6  閉包(Closure)和回調(diào) 215
6.8  枚舉類 217
6.8.1  手動實現(xiàn)枚舉類 217
6.8.2  枚舉類入門 219
6.8.3  枚舉類的屬性、方法和構(gòu)造器 220
6.8.4  實現(xiàn)接口的枚舉類 223
6.8.5  包含抽象方法的枚舉類 224
6.9  對象與垃圾回收 225
6.9.1  對象在內(nèi)存中的狀態(tài) 226
6.9.2  強制垃圾回收 227
6.9.3  finalize方法 228
6.9.4  對象的軟、弱和虛引用 230
6.10  修飾符的適用范圍 233
6.11  使用JAR文件 234
6.11.1  jar命令詳解 235
6.11.2  創(chuàng)建可執(zhí)行的JAR包 237
6.11.3  關于JAR包的技巧 238
6.12  本章小結(jié) 239
本章練習 239
第7章  Java集合 240
7.1  Java集合概述 241
7.2  Collection和Iterator接口 243
7.2.1  使用Iterator接口遍歷集合元素 244
7.2.2  使用foreach循環(huán)遍歷集合元素 246
7.3  Set接口 247
7.3.1  HashSet類 247
學生提問:hashCode方法對于HashSet的作用是什么? 249
7.3.2  TreeSet類 252
7.3.3  EnumSet類 259
7.4  List接口 261
7.4.1  List接口和ListIterator接口 261
7.4.2  ArrayList和Vector實現(xiàn)類 264
7.4.3  固定長度的List 266
7.5  Queue接口 266
7.5.1  LinkedList實現(xiàn)類 266
7.5.2  PriorityQueue實現(xiàn)類 269
7.6  Map 270
7.6.1  HashMap和Hashtable實現(xiàn)類 271
7.6.2  SortedMap接口和TreeMap實現(xiàn)類 276
7.6.3  WeakHashMap實現(xiàn)類 279
7.6.4  IdentityHashMap實現(xiàn)類 280
7.6.5  EnumMap實現(xiàn)類 281
7.7  HashSet和HashMap的性能選項 282
7.8  操作集合的工具類:Collections 283
7.8.1  排序操作 283
7.8.2  查找,替換操作 287
7.8.3  同步控制 288
7.8.4  設置不可變集合 288
7.9  煩瑣的接口:Enumeration 289
7.10  本章小結(jié) 290
本章練習 290
第8章  泛型 291
8.1  泛型入門 292
8.1.1  編譯時不檢查類型的異常 292
8.1.2  手動實現(xiàn)編譯時檢查類型 293
8.1.3  使用泛型 294
8.2  深入泛型 294
8.2.1  定義泛型接口、類 295
8.2.2  從泛型類派生子類 296
8.2.3  并不存在泛型類 298
8.3  類型通配符 298
8.3.1  使用類型通配符 300
8.3.2  設定類型通配符的上限 300
8.3.3  設定類型形參的上限 302
8.4  泛型方法 303
8.4.1  定義泛型方法 303
8.4.2  泛型方法和類型通配符的區(qū)別 306
8.4.3  設定通配符的下限 307
8.4.4  泛型方法與方法重載 309
8.5  擦除和轉(zhuǎn)換 310
8.6  泛型與數(shù)組 311
8.7  本章小結(jié) 313
第9章  與運行環(huán)境交互 314
9.1  與用戶互動 315
9.1.1  運行Java程序的參數(shù) 315
9.1.2  使用Scanner獲取鍵盤輸入 316
9.1.3  使用BufferedReader獲取鍵盤輸入 318
9.2  系統(tǒng)相關 319
9.2.1  System類 319
9.2.2  Runtime類 321
9.3  常用類 322
9.3.1  Object類 322
9.3.2  String、StringBuffer和StringBuilder類 322
9.3.3  Math類 327
9.3.4  Random類 328
9.3.5  BigDecimal類 330
9.4  處理日期的類 333
9.4.1  Date類 333
9.4.2  Calendar類 334
9.4.3  TimeZone類 337
9.5  正則表達式 338
9.5.1  創(chuàng)建正則表達式 338
9.5.2  使用正則表達式 341
9.6  程序國際化 345
9.6.1  Java國際化的思路 346
9.6.2  Java支持的語言和國家 346
9.6.3  完成程序國際化 347
9.6.4  使用MessageFormat處理包含占位符的字符串 349
9.6.5  使用類文件代替資源文件 350
9.6.6  使用NumberFormat格式化數(shù)字 350
9.6.7  使用DateFormat格式化日期 352
9.7  本章小結(jié) 355
本章練習 355
第10章  異常處理 356
10.1  異常概述 357
10.2  異常處理機制 358
10.2.1  使用try...catch捕獲異常 359
10.2.2  異常類的繼承體系 360
10.2.3  訪問異常信息 363
10.2.4  使用finally回收資源 364
10.2.5  異常處理的嵌套 367
10.3  Checked異常和Runtime異常體系 367
10.3.1  使用throws聲明拋出異常 367
10.4  使用throw拋出異常 369
10.4.1  拋出異常 369
10.4.2  自定義異常類 371
10.4.3  catch和throw同時使用 371
10.4.4  異常鏈 373
10.5  Java的異常跟蹤棧 374
10.6  異常處理規(guī)則 376
10.6.1  不要過度使用異常 377
10.6.2  不要使用過于龐大的try塊 378
10.6.3  避免使用Catch All語句 378
10.6.4  不要忽略捕獲到的異常 379
10.7  本章小結(jié) 379
本章練習 379
第11章  AWT編程 380
11.1  GUI(圖形用戶界面)和AWT 381
11.2  AWT容器 382
11.3  布局管理器 385
11.3.1  FlowLayout布局管理器 386
11.3.2  BorderLayout布局管理器 387
學生提問:BorderLayout最多只能放置5個組件嗎?那它還有什么作用? 388
11.3.3  GridLayout布局管理器 389
11.3.4  GridBagLayout布局管理器 390
11.3.5  CardLayout布局管理器 393
11.3.6  絕對定位 395
11.3.7  BoxLayout布局管理器 396
學生提問:圖11.15和圖11.16顯示的所有按鈕都緊挨在一起,如果希望像FlowLayout、GridLayout等布局管理器指定組件的間距該怎么辦? 397
11.4  AWT 常用組件 398
11.4.1  基本組件 398
11.4.2  對話框 400
11.5  事件處理 403
11.5.1  Java事件模型的流程 403
11.5.2  事件和事件監(jiān)聽器 405
11.5.3  事件適配器 409
11.5.4  事件監(jiān)聽器的實現(xiàn)形式 411
11.6  AWT的菜單 413
11.6.1  菜單條、菜單和菜單項 414
11.6.2  右鍵菜單 416
學生提問:為什么即使我沒有給多行文本域編寫右鍵菜單,但當我在多行文本域上單擊右鍵時一樣會彈出右鍵菜單? 418
11.7  在AWT中繪圖 418
11.7.1  畫圖的實現(xiàn)原理 418
11.7.2  使用Graphics類 419
11.8  處理位圖 425
11.8.1  Image抽象類和BufferedImage實現(xiàn)類 425
11.8.2  使用ImageIO輸入/輸出位圖 427
11.9  剪貼板 432
11.9.1  數(shù)據(jù)傳遞的類和接口 432
11.9.2  傳遞文本 433
11.9.3  使用系統(tǒng)剪貼板傳遞圖像 435
11.9.4  使用本地剪貼板來傳遞對象引用 439
11.9.5  通過系統(tǒng)剪貼板傳遞Java對象 442
11.10  本章小結(jié) 445
本章練習 445
第12章  Swing編程 446
12.1  Swing概述 447
12.2  Swing基本組件的用法 448
12.2.1  Swing組件層次 448
12.2.2  AWT組件的Swing實現(xiàn) 449
學生提問:為什么單擊Swing多行文本域時不是彈出像AWT多行文本域中的右鍵菜單? 455
12.2.3  使用JToolBar創(chuàng)建工具條 458
12.2.4  使用JColorChooser和JFileChooser 461
12.2.5  使用JOptionPane 469
12.3  Swing中的特殊容器 475
12.3.1  使用JSplitPane 475
12.3.2  使用JTabbedPane 477
12.3.3  使用JLayeredPane、JDesktopPane和JInternalFrame 481
12.4  Swing拖放功能 490
12.4.1  拖放目標 491
12.4.2  拖放源 494
12.4.3  簡化的拖放操作 495
12.5  Applet和JApplet 497
12.5.1  Applet簡介及其安全性 498
12.5.2  開發(fā)Applet類 498
12.5.3  使用HTML頁面裝載Applet 500
12.5.4  appletviewer簡介 502
12.5.5  Applet的生命周期和動畫機制 503
學生提問:程序中重寫paint方法時繪制了一個字符串,但圖12.28上則繪制出了如此之多的字符串,這是為什么呢? 505
12.5.6  使用Applet創(chuàng)建音樂播放器 505
12.6  使用JProgressBar、ProgressMonitor和BoundedRangeModel創(chuàng)建進度條 508
12.6.1  創(chuàng)建進度條 508
12.6.2  創(chuàng)建進度對話框 512
12.7  使用JSlider和BoundedRangeModel創(chuàng)建滑動條 513
12.8  使用JSpinner和SpinnerModel創(chuàng)建微調(diào)控制器 517
12.9  使用JList、JComboBox創(chuàng)建列表框 520
12.9.1  簡單列表框 520
12.9.2  不強制存儲列表項的ListModel和ComboBoxModel 524
12.9.3  強制存儲列表項的DefaultListModel和DefaultComboBoxModel 528
學生提問:為什么JComboBox提供了添加、刪除列表項目的方法?而JList沒有提供添加、刪除列表項的方法呢? 530
12.9.4  使用ListCellRenderer改變列表項外觀 530
12.10  使用JTree和TreeModel創(chuàng)建樹 532
12.10.1  創(chuàng)建樹 533
12.10.2  拖動、編輯樹節(jié)點 536
12.10.3  監(jiān)聽節(jié)點事件 540
12.10.4  使用TreeCellRendering改變節(jié)點外觀 542
12.11  使用JTable和TableModel創(chuàng)建表格 549
12.11.1  創(chuàng)建JTable 549
學生提問:我們指定的表格數(shù)據(jù)、表格列標題都是Object類型的數(shù)組,JTable如何顯示這些Object對象?550
12.11.2  TableModel和監(jiān)聽器 555
12.11.3  TableColumnModel和監(jiān)聽器 561
12.11.4  實現(xiàn)排序 564
12.11.5  繪制單元格內(nèi)容 567
12.11.6  編輯單元格內(nèi)容 570
12.12  使用JFormattedTextField和JTextPane創(chuàng)建格式文本 576
12.12.1  監(jiān)聽Document的改變 576
12.12.2  使用JPasswordField 578
12.12.3  使用JFormattedTextField 579
12.12.4  使用JEditorPane 588
12.12.5  使用JTextPane 588
12.13  本章小結(jié) 595
本章練習 595
第13章  JDBC編程 596
13.1  JDBC基礎 597
13.1.1  JDBC簡介 597
13.1.2  JDBC驅(qū)動程序類型 598
13.2  SQL語法介紹 599
13.2.1  安裝數(shù)據(jù)庫 599
13.2.2  關系數(shù)據(jù)庫基本概念和MySQL基本命令 601
13.2.3  SQL語句基礎 603
13.2.4  DDL語句 604
13.2.5  DML語句語法 618
13.2.6  select語句和SQL函數(shù) 620
13.2.7  分組和組函數(shù) 627
13.2.8  多表連接查詢和子查詢 629
13.3  JDBC的典型用法 635
13.3.1  JDBC常用接口和類簡介 635
13.3.2  JDBC編程步驟 637
學生提問:前面給出的僅是MySQL和Oracle兩種數(shù)據(jù)庫的驅(qū)動,我看不出驅(qū)動類字符串有什么規(guī)律啊。如果我希望使用其他數(shù)據(jù)庫,我怎么用其他數(shù)據(jù)庫的驅(qū)動類呢?637
13.4  執(zhí)行SQL語句的方式 639
13.4.1  使用executeUpdate執(zhí)行DDL和DML語句 640
13.4.2  使用execute方法執(zhí)行SQL語句 642
13.4.3  使用PreparedStatement執(zhí)行SQL語句 644
13.4.4  使用CallableStatement調(diào)用存儲過程 650
13.5  管理結(jié)果集 652
13.5.1  可滾動、可更新的結(jié)果集 652
13.5.2  處理Blob類型數(shù)據(jù) 654
13.5.3  使用ResultSetMetaData分析結(jié)果集 660
13.6  事務處理 663
13.6.1  事務的概念和MySQL事務支持 663
13.6.2  JDBC的事務支持 665
13.6.3  批量更新 667
13.7  分析數(shù)據(jù)庫信息 668
13.7.1  使用DatabaseMetaData分析數(shù)據(jù)庫信息 668
13.7.2  使用系統(tǒng)表分析數(shù)據(jù)庫信息 670
13.7.3  選擇合適的分析方式 671
13.8  使用連接池管理連接 671
13.9  本章小結(jié) 673
本章練習 673
第14章  Annotation(注釋) 674
14.1  基本Annotation 675
14.1.1  限定重寫父類方法:@Override 675
14.1.2  標示已過時:@Deprecated 676
14.1.3  抑制編譯器警告:@SuppressWarnings 677
14.2  自定義Annotation 677
14.2.1  定義Annotation 677
14.2.2  提取Annotation的信息 679
14.2.3  使用Annotation的例子 680
14.3  JDK的元Annotation 685
14.3.1  使用@Retention 685
14.3.2  使用@Target 686
14.3.3  使用@Documented 686
14.3.4  使用@Inherited 687
14.4  使用APT處理Annotation 688
14.5  本章小結(jié) 693
第15章  輸入/輸出 694
15.1  File類 695
15.1.1  訪問文件和目錄 695
15.1.2  文件過濾器 697
15.2  理解Java的IO流 698
15.2.1  流的分類 698
15.2.2  流的概念模型 699
15.3  字節(jié)流和字符流 700
15.3.1  InputStream和Reader 701
15.3.2  OutputStream和Writer 703
15.4  輸入/輸出流體系 705
15.4.1  處理流的用法 705
15.4.2  輸入/輸出流體系 706
15.4.3  轉(zhuǎn)換流 708
學生提問:怎么沒有把字符流轉(zhuǎn)換成字節(jié)流的轉(zhuǎn)換流呢? 708
15.4.4  推回輸入流 710
15.5  重定向標準輸入/輸出 711
15.6  Java虛擬機讀寫其他進程的數(shù)據(jù) 713
15.7  RandomAccessFile 716
15.8  對象序列化 720
15.8.1  序列化的含義和意義 720
15.8.2  使用對象流實現(xiàn)序列化 720
15.8.3  對象引用的序列化 723
15.8.4  自定義序列化 728
15.8.5  另一種自定義序列化機制 733
15.8.6  版本 735
15.9  Java新IO 736
15.9.1  Java新IO概述 736
15.9.2  使用Buffer 737
15.9.3  使用Channel 740
15.9.4  編碼集和Charset 743
15.9.5  文件鎖 745
15.10  本章小結(jié) 747
本章練習 747
第16章  多線程 748
16.1  線程概述 749
16.1.1  線程和進程 749
16.1.2  多線程的優(yōu)勢 750
16.2  線程的創(chuàng)建和啟動 750
16.2.1  繼承Thread類創(chuàng)建線程類 751
16.2.2  實現(xiàn)Runnable接口創(chuàng)建線程類 752
16.2.3  兩種方式所創(chuàng)建線程的對比 754
16.3  線程的生命周期 754
16.3.1  新建和就緒狀態(tài) 754
16.3.2  運行和阻塞狀態(tài) 756
16.3.3  線程死亡 757
16.4  控制線程 758
16.4.1  join線程 758
16.4.2  后臺線程 759
16.4.3  線程睡眠:sleep 760
16.4.4  線程讓步:yield 761
16.4.5  改變線程優(yōu)先級 762
16.5  線程的同步 764
16.5.1  線程安全問題 764
16.5.2  同步代碼塊 766
16.5.3  同步方法 767
16.5.4  釋放同步監(jiān)視器的鎖定 770
16.5.5  同步鎖(Lock) 770
16.5.6  死鎖 772
16.6  線程通信 774
16.6.1  線程的協(xié)調(diào)運行 774
16.6.2  使用條件變量控制協(xié)調(diào) 778
16.6.3  使用管道流 780
16.7  線程組和未處理的異常 782
16.8  Callable和Future 785
16.9  線程池 787
16.10  線程相關類 789
16.10.1  ThreadLocal類 789
16.10.2  包裝線程不安全的集合 791
16.10.3  線程安全的集合類 792
16.11  本章小結(jié) 792
第17章  網(wǎng)絡編程 793
17.1  網(wǎng)絡編程的基礎知識 794
17.1.1  網(wǎng)絡基礎知識 794
17.1.2  IP地址和端口號 795
17.2  Java的基本網(wǎng)絡支持 796
17.2.1  使用InetAddress 796
17.2.2  使用URLDecoder和URLEncoder 797
17.2.3  使用URL和URLConnection 798
17.3  基于TCP協(xié)議的網(wǎng)絡編程 806
17.3.1  TCP協(xié)議基礎 806
17.3.2  使用ServletSocket創(chuàng)建TCP服務器端 807
17.3.3  使用Socket進行通信 807
17.3.4  加入多線程 810
17.3.5  記錄用戶信息 813
17.3.6  使用NIO實現(xiàn)非阻塞Socket通信 823
17.4  基于UDP協(xié)議的網(wǎng)絡編程 829
17.4.1  UDP協(xié)議基礎 829
17.4.2  使用DatagramSocket發(fā)送、接收數(shù)據(jù) 829
17.4.3  使用MulticastSocket實現(xiàn)多點廣播 834
17.5  使用代理服務器 845
17.5.1  直接使用Proxy創(chuàng)建連接 845
17.5.2  使用ProxySelector選擇代理服務器 847
17.6  本章小結(jié) 849
本章練習 849
第18章  類加載和反射 850
18.1  類的加載、連接和初始化 851
18.1.1  JVM和類 851
18.1.2  類的加載 852
18.1.3  類的連接 853
18.1.4  類的初始化 853
18.1.5  類初始化的時機 854
18.2  類加載器 855
18.2.1  類加載器簡介 856
18.2.2  類加載機制 857
18.2.3  創(chuàng)建并使用自定義的類加載器 858
18.2.4  URLClassLoader類 862
18.3  通過反射查看類信息 863
18.3.1  獲得Class對象 863
18.3.2  從Class中獲取信息 864
18.4  使用反射生成并操作對象 868
18.4.1  創(chuàng)建對象 868
18.4.2  調(diào)用方法 870
18.4.3  訪問屬性值 873
18.4.4  操作數(shù)組 874
18.5  使用反射生成JDK動態(tài)代理 875
18.5.1  使用Proxy和InvocationHandler創(chuàng)建動態(tài)代理 876
18.5.2  動態(tài)代理和AOP 878
18.6  反射和泛型 882
18.6.1  泛型和Class類 882
18.6.2  使用反射來獲取泛型信息 884
18.7  本章小結(jié) 885
本章練習 886
上善若水——兼談我的創(chuàng)作理念 887

本目錄推薦

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