注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)瘋狂Java講義

瘋狂Java講義

瘋狂Java講義

定 價(jià):¥99.00

作 者: 李剛 編著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: J2EE

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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

第1章  Java概述 1
1.1  Java語言的發(fā)展簡(jiǎn)史 2
1.2  Java的競(jìng)爭(zhēng)對(duì)手及各自優(yōu)勢(shì) 4
1.2.1  C#簡(jiǎn)介和優(yōu)勢(shì) 4
1.2.2  Ruby簡(jiǎn)介和優(yōu)勢(shì) 4
1.2.3  Python的簡(jiǎn)介和優(yōu)勢(shì) 5
1.3  Java程序運(yùn)行機(jī)制 5
1.3.1  高級(jí)語言的運(yùn)行機(jī)制 6
1.3.2  Java程序的運(yùn)行機(jī)制和JVM 6
1.4  開發(fā)Java的準(zhǔn)備 7
1.4.1  安裝JDK 8
學(xué)生提問:不是說JVM是運(yùn)行Java程序的虛擬機(jī)嗎?那JRE和JVM的關(guān)系是怎樣的呢?  8
學(xué)生提問:為什么不安裝公共JRE系統(tǒng)呢? 9
1.4.2  設(shè)置PATH環(huán)境變量 10
學(xué)生提問:為什么選擇設(shè)置用戶變量,用戶變量和系統(tǒng)變量有什么區(qū)別呢? 11
1.5  第一個(gè)Java程序 12
1.5.1  編輯Java源代碼 12
1.5.2  編譯Java程序 13
學(xué)生提問:當(dāng)我們使用編譯C程序時(shí),不僅需要指定存放目標(biāo)文件的位置,也需要指定目標(biāo)文件的文件名,這里使用javac編譯Java程序時(shí)怎么不需要指定目標(biāo)文件的文件名呢?   13
1.5.3  運(yùn)行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  初學(xué)者容易犯的錯(cuò)誤 18
1.7  垃圾回收機(jī)制 20
1.8  何時(shí)開始使用IDE工具 21
學(xué)生提問:老師,我想學(xué)習(xí)Java編程,到底是學(xué)習(xí)Eclipse好呢,還是學(xué)習(xí)JBuilder好呢? 21
1.9  本章小結(jié) 22
本章練習(xí) 22
第2章  理解面向?qū)ο?nbsp;23
2.1  面向?qū)ο?nbsp;24
2.1.1  結(jié)構(gòu)化程序設(shè)計(jì)簡(jiǎn)介 24
2.1.2  程序的三種基本結(jié)構(gòu) 25
2.1.3  面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介 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  活動(dòng)圖 34
2.2.7  狀態(tài)機(jī)圖 36
2.3  Java的面向?qū)ο筇卣?nbsp;36
2.3.1  一切都是對(duì)象 37
2.3.2  類和對(duì)象 37
2.4  本章小結(jié) 37
第3章  數(shù)據(jù)類型和運(yùn)算符 38
3.1  注釋 39
3.1.1  單行注釋和多行注釋 39
3.1.2  文檔注釋 40
學(xué)生提問:API文檔是什么? 40
學(xué)生提問:為什么要掌握查看API文檔的方法? 42
3.2  標(biāo)識(shí)符和關(guān)鍵字 45
3.2.1  分隔符 45
3.2.2  標(biāo)識(shí)符規(guī)則 47
3.2.3  Java關(guān)鍵字 47
3.3  數(shù)據(jù)類型分類 48
3.4  基本數(shù)據(jù)類型 48
3.4.1  整型 49
3.4.2  字符型 49
3.4.3  浮點(diǎn)型 51
3.4.4  布爾型 52
3.5  基本類型的類型轉(zhuǎn)換 53
3.5.1  自動(dòng)類型轉(zhuǎn)換 53
3.5.2  強(qiáng)制類型轉(zhuǎn)化 54
3.5.3  表達(dá)式類型的自動(dòng)提升 56
3.6  直接量 57
3.6.1  直接量的類型 57
3.6.2  直接量的賦值 58
3.7  運(yùn)算符 58
3.7.1  算術(shù)運(yùn)算符 58
3.7.2  賦值運(yùn)算符 61
3.7.3  位運(yùn)算符 62
3.7.4  擴(kuò)展后的賦值運(yùn)算符 64
3.7.5  比較運(yùn)算符 65
學(xué)生提問:Java為什么要對(duì)這些數(shù)據(jù)進(jìn)行緩存呢? 67
3.7.6  邏輯運(yùn)算符 67
3.7.7  三目運(yùn)算符 68
3.7.8  運(yùn)算符的結(jié)合性和優(yōu)先級(jí) 69
3.8  本章小結(jié) 70
本章練習(xí) 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
學(xué)生提問:int[]是一種類型嗎?怎么使用這種類型呢? 88
4.5.2  定義數(shù)組 88
4.5.3  數(shù)組的初始化 89
學(xué)生提問:能不能只分配內(nèi)存空間,不賦初始值呢?89
4.5.4  使用數(shù)組 90
學(xué)生提問:為什么要我記住這些異常信息? 91
4.5.5  JDK1.5提供了foreach循環(huán) 91
4.6  深入數(shù)組 93
4.6.1  內(nèi)存中的數(shù)組 93
學(xué)生提問:為什么有棧內(nèi)存和堆內(nèi)存之分? 93
4.6.2  基本類型數(shù)組的初始化 95
4.6.3  引用類型數(shù)組的初始化 96
4.6.4  沒有多維數(shù)組 99
學(xué)生提問:我是否可以讓圖4.13中灰色覆蓋的數(shù)組元素再次指向另一個(gè)數(shù)組?這樣不可以擴(kuò)展成三維數(shù)組嗎?甚至擴(kuò)展到更多維的數(shù)組? 101
4.6.5  操作數(shù)組的工具類 102
4.6.6  數(shù)組的應(yīng)用舉例 103
4.7  本章小結(jié) 106
本章練習(xí) 106 第5章  面向?qū)ο螅ㄉ希?nbsp;107
5.1  類和對(duì)象 108
5.1.1  定義類 108
學(xué)生提問:構(gòu)造器不是沒有返回值嗎?為什么不能用void修飾呢? 110
5.1.2  對(duì)象的產(chǎn)生和使用 110
5.1.3  對(duì)象、引用和指針 111
5.1.4  對(duì)象的this引用 112
5.2  方法詳解 116
5.2.1  方法的所屬性 116
5.2.2  方法的參數(shù)傳遞機(jī)制 116
5.2.3  形參長(zhǎng)度可變的方法 120
5.2.4  遞歸方法 121
5.2.5  方法重載 123
學(xué)生提問:為什么方法的返回值類型不能用于區(qū)分重載的方法? 124
5.3  成員變量和局部變量 124
5.3.1  成員變量和局部變量 125
5.3.2  成員變量的初始化和內(nèi)存中的運(yùn)行機(jī)制 128
5.3.3  局部變量的初始化和內(nèi)存中的運(yùn)行機(jī)制 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
學(xué)生提問:構(gòu)造器是創(chuàng)建Java對(duì)象的途徑,是不是說構(gòu)造器完全負(fù)責(zé)創(chuàng)建Java對(duì)象? 141
5.5.2  構(gòu)造器的重載 142
學(xué)生提問:為什么要用this來調(diào)用另一個(gè)重載的構(gòu)造器?我把另一個(gè)構(gòu)造器里的代碼復(fù)制、粘貼到這個(gè)構(gòu)造器里不就可以了嗎? 143
5.6  類的繼承 144
5.6.1 繼承的特點(diǎn) 144
5.6.2  重寫父類的方法 145
5.6.3  父類實(shí)例的super引用 146
學(xué)生提問:我們只是創(chuàng)建了一個(gè)Ostrich對(duì)象時(shí),哪來的Bird對(duì)象? 147
5.6.4  調(diào)用父類構(gòu)造器 148
學(xué)生提問:為什么我創(chuàng)建Java對(duì)象時(shí)從未感覺到j(luò)ava.lang.Object的構(gòu)造器被調(diào)用過? 150
5.7  多態(tài) 151
5.7.1  多態(tài)性 151
5.7.2  引用變量的強(qiáng)制類型轉(zhuǎn)換 152
5.7.3  instanceof運(yùn)算符 154
5.8  繼承與組合 154
5.8.1  使用繼承的注意點(diǎn) 155
5.8.2  利用組合實(shí)現(xiàn)復(fù)用 156
學(xué)生提問:使用組合關(guān)系來實(shí)現(xiàn)復(fù)用時(shí),需要?jiǎng)?chuàng)建兩個(gè)Animal對(duì)象,是不是意味著使用組合關(guān)系時(shí)系統(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
本章練習(xí) 165
第6章  面向?qū)ο螅ㄏ拢?nbsp;166
6.1  基本數(shù)據(jù)類型的包裝類 167
6.2  處理對(duì)象 170
6.2.1  打印對(duì)象和toString方法 170
6.2.2  ==和equals比較運(yùn)算符 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  緩存實(shí)例的不可變類 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
學(xué)生提問:非靜態(tài)內(nèi)部類對(duì)象和外部類對(duì)象的關(guān)系是怎樣的? 206
6.7.2  靜態(tài)內(nèi)部類 207
學(xué)生提問:為什么靜態(tài)內(nèi)部類實(shí)例方法也不能訪問外部類的實(shí)例屬性呢? 207
學(xué)生提問:接口里是否能定義內(nèi)部接口? 208
6.7.3  使用內(nèi)部類 208
學(xué)生提問:既然內(nèi)部類是外部類的成員,是否可以為外部類定義子類,在子類中再定義一個(gè)內(nèi)部類來重寫其父類中的內(nèi)部類? 211
6.7.4  局部?jī)?nèi)部類 211
6.7.5  匿名內(nèi)部類 212
6.7.6  閉包(Closure)和回調(diào) 215
6.8  枚舉類 217
6.8.1  手動(dòng)實(shí)現(xiàn)枚舉類 217
6.8.2  枚舉類入門 219
6.8.3  枚舉類的屬性、方法和構(gòu)造器 220
6.8.4  實(shí)現(xiàn)接口的枚舉類 223
6.8.5  包含抽象方法的枚舉類 224
6.9  對(duì)象與垃圾回收 225
6.9.1  對(duì)象在內(nèi)存中的狀態(tài) 226
6.9.2  強(qiáng)制垃圾回收 227
6.9.3  finalize方法 228
6.9.4  對(duì)象的軟、弱和虛引用 230
6.10  修飾符的適用范圍 233
6.11  使用JAR文件 234
6.11.1  jar命令詳解 235
6.11.2  創(chuàng)建可執(zhí)行的JAR包 237
6.11.3  關(guān)于JAR包的技巧 238
6.12  本章小結(jié) 239
本章練習(xí) 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
學(xué)生提問:hashCode方法對(duì)于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實(shí)現(xiàn)類 264
7.4.3  固定長(zhǎng)度的List 266
7.5  Queue接口 266
7.5.1  LinkedList實(shí)現(xiàn)類 266
7.5.2  PriorityQueue實(shí)現(xiàn)類 269
7.6  Map 270
7.6.1  HashMap和Hashtable實(shí)現(xiàn)類 271
7.6.2  SortedMap接口和TreeMap實(shí)現(xiàn)類 276
7.6.3  WeakHashMap實(shí)現(xiàn)類 279
7.6.4  IdentityHashMap實(shí)現(xiàn)類 280
7.6.5  EnumMap實(shí)現(xiàn)類 281
7.7  HashSet和HashMap的性能選項(xiàng) 282
7.8  操作集合的工具類:Collections 283
7.8.1  排序操作 283
7.8.2  查找,替換操作 287
7.8.3  同步控制 288
7.8.4  設(shè)置不可變集合 288
7.9  煩瑣的接口:Enumeration 289
7.10  本章小結(jié) 290
本章練習(xí) 290
第8章  泛型 291
8.1  泛型入門 292
8.1.1  編譯時(shí)不檢查類型的異常 292
8.1.2  手動(dòng)實(shí)現(xiàn)編譯時(shí)檢查類型 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  設(shè)定類型通配符的上限 300
8.3.3  設(shè)定類型形參的上限 302
8.4  泛型方法 303
8.4.1  定義泛型方法 303
8.4.2  泛型方法和類型通配符的區(qū)別 306
8.4.3  設(shè)定通配符的下限 307
8.4.4  泛型方法與方法重載 309
8.5  擦除和轉(zhuǎn)換 310
8.6  泛型與數(shù)組 311
8.7  本章小結(jié) 313
第9章  與運(yùn)行環(huán)境交互 314
9.1  與用戶互動(dòng) 315
9.1.1  運(yùn)行Java程序的參數(shù) 315
9.1.2  使用Scanner獲取鍵盤輸入 316
9.1.3  使用BufferedReader獲取鍵盤輸入 318
9.2  系統(tǒng)相關(guān) 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  正則表達(dá)式 338
9.5.1  創(chuàng)建正則表達(dá)式 338
9.5.2  使用正則表達(dá)式 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
本章練習(xí) 355
第10章  異常處理 356
10.1  異常概述 357
10.2  異常處理機(jī)制 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同時(shí)使用 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
本章練習(xí) 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
學(xué)生提問:BorderLayout最多只能放置5個(gè)組件嗎?那它還有什么作用? 388
11.3.3  GridLayout布局管理器 389
11.3.4  GridBagLayout布局管理器 390
11.3.5  CardLayout布局管理器 393
11.3.6  絕對(duì)定位 395
11.3.7  BoxLayout布局管理器 396
學(xué)生提問:圖11.15和圖11.16顯示的所有按鈕都緊挨在一起,如果希望像FlowLayout、GridLayout等布局管理器指定組件的間距該怎么辦? 397
11.4  AWT 常用組件 398
11.4.1  基本組件 398
11.4.2  對(duì)話框 400
11.5  事件處理 403
11.5.1  Java事件模型的流程 403
11.5.2  事件和事件監(jiān)聽器 405
11.5.3  事件適配器 409
11.5.4  事件監(jiān)聽器的實(shí)現(xiàn)形式 411
11.6  AWT的菜單 413
11.6.1  菜單條、菜單和菜單項(xiàng) 414
11.6.2  右鍵菜單 416
學(xué)生提問:為什么即使我沒有給多行文本域編寫右鍵菜單,但當(dāng)我在多行文本域上單擊右鍵時(shí)一樣會(huì)彈出右鍵菜單? 418
11.7  在AWT中繪圖 418
11.7.1  畫圖的實(shí)現(xiàn)原理 418
11.7.2  使用Graphics類 419
11.8  處理位圖 425
11.8.1  Image抽象類和BufferedImage實(shí)現(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  使用本地剪貼板來傳遞對(duì)象引用 439
11.9.5  通過系統(tǒng)剪貼板傳遞Java對(duì)象 442
11.10  本章小結(jié) 445
本章練習(xí) 445
第12章  Swing編程 446
12.1  Swing概述 447
12.2  Swing基本組件的用法 448
12.2.1  Swing組件層次 448
12.2.2  AWT組件的Swing實(shí)現(xiàn) 449
學(xué)生提問:為什么單擊Swing多行文本域時(shí)不是彈出像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  拖放目標(biāo) 491
12.4.2  拖放源 494
12.4.3  簡(jiǎn)化的拖放操作 495
12.5  Applet和JApplet 497
12.5.1  Applet簡(jiǎn)介及其安全性 498
12.5.2  開發(fā)Applet類 498
12.5.3  使用HTML頁面裝載Applet 500
12.5.4  appletviewer簡(jiǎn)介 502
12.5.5  Applet的生命周期和動(dòng)畫機(jī)制 503
學(xué)生提問:程序中重寫paint方法時(shí)繪制了一個(gè)字符串,但圖12.28上則繪制出了如此之多的字符串,這是為什么呢? 505
12.5.6  使用Applet創(chuàng)建音樂播放器 505
12.6  使用JProgressBar、ProgressMonitor和BoundedRangeModel創(chuàng)建進(jìn)度條 508
12.6.1  創(chuàng)建進(jìn)度條 508
12.6.2  創(chuàng)建進(jìn)度對(duì)話框 512
12.7  使用JSlider和BoundedRangeModel創(chuàng)建滑動(dòng)條 513
12.8  使用JSpinner和SpinnerModel創(chuàng)建微調(diào)控制器 517
12.9  使用JList、JComboBox創(chuàng)建列表框 520
12.9.1  簡(jiǎn)單列表框 520
12.9.2  不強(qiáng)制存儲(chǔ)列表項(xiàng)的ListModel和ComboBoxModel 524
12.9.3  強(qiáng)制存儲(chǔ)列表項(xiàng)的DefaultListModel和DefaultComboBoxModel 528
學(xué)生提問:為什么JComboBox提供了添加、刪除列表項(xiàng)目的方法?而JList沒有提供添加、刪除列表項(xiàng)的方法呢? 530
12.9.4  使用ListCellRenderer改變列表項(xiàng)外觀 530
12.10  使用JTree和TreeModel創(chuàng)建樹 532
12.10.1  創(chuàng)建樹 533
12.10.2  拖動(dòng)、編輯樹節(jié)點(diǎn) 536
12.10.3  監(jiān)聽節(jié)點(diǎn)事件 540
12.10.4  使用TreeCellRendering改變節(jié)點(diǎn)外觀 542
12.11  使用JTable和TableModel創(chuàng)建表格 549
12.11.1  創(chuàng)建JTable 549
學(xué)生提問:我們指定的表格數(shù)據(jù)、表格列標(biāo)題都是Object類型的數(shù)組,JTable如何顯示這些Object對(duì)象?550
12.11.2  TableModel和監(jiān)聽器 555
12.11.3  TableColumnModel和監(jiān)聽器 561
12.11.4  實(shí)現(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
本章練習(xí) 595
第13章  JDBC編程 596
13.1  JDBC基礎(chǔ) 597
13.1.1  JDBC簡(jiǎn)介 597
13.1.2  JDBC驅(qū)動(dòng)程序類型 598
13.2  SQL語法介紹 599
13.2.1  安裝數(shù)據(jù)庫 599
13.2.2  關(guān)系數(shù)據(jù)庫基本概念和MySQL基本命令 601
13.2.3  SQL語句基礎(chǔ) 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常用接口和類簡(jiǎn)介 635
13.3.2  JDBC編程步驟 637
學(xué)生提問:前面給出的僅是MySQL和Oracle兩種數(shù)據(jù)庫的驅(qū)動(dòng),我看不出驅(qū)動(dòng)類字符串有什么規(guī)律啊。如果我希望使用其他數(shù)據(jù)庫,我怎么用其他數(shù)據(jù)庫的驅(qū)動(dòng)類呢?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)用存儲(chǔ)過程 650
13.5  管理結(jié)果集 652
13.5.1  可滾動(dòng)、可更新的結(jié)果集 652
13.5.2  處理Blob類型數(shù)據(jù) 654
13.5.3  使用ResultSetMetaData分析結(jié)果集 660
13.6  事務(wù)處理 663
13.6.1  事務(wù)的概念和MySQL事務(wù)支持 663
13.6.2  JDBC的事務(wù)支持 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
本章練習(xí) 673
第14章  Annotation(注釋) 674
14.1  基本Annotation 675
14.1.1  限定重寫父類方法:@Override 675
14.1.2  標(biāo)示已過時(shí):@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
學(xué)生提問:怎么沒有把字符流轉(zhuǎn)換成字節(jié)流的轉(zhuǎn)換流呢? 708
15.4.4  推回輸入流 710
15.5  重定向標(biāo)準(zhǔn)輸入/輸出 711
15.6  Java虛擬機(jī)讀寫其他進(jìn)程的數(shù)據(jù) 713
15.7  RandomAccessFile 716
15.8  對(duì)象序列化 720
15.8.1  序列化的含義和意義 720
15.8.2  使用對(duì)象流實(shí)現(xiàn)序列化 720
15.8.3  對(duì)象引用的序列化 723
15.8.4  自定義序列化 728
15.8.5  另一種自定義序列化機(jī)制 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
本章練習(xí) 747
第16章  多線程 748
16.1  線程概述 749
16.1.1  線程和進(jìn)程 749
16.1.2  多線程的優(yōu)勢(shì) 750
16.2  線程的創(chuàng)建和啟動(dòng) 750
16.2.1  繼承Thread類創(chuàng)建線程類 751
16.2.2  實(shí)現(xiàn)Runnable接口創(chuàng)建線程類 752
16.2.3  兩種方式所創(chuàng)建線程的對(duì)比 754
16.3  線程的生命周期 754
16.3.1  新建和就緒狀態(tài) 754
16.3.2  運(yùn)行和阻塞狀態(tài) 756
16.3.3  線程死亡 757
16.4  控制線程 758
16.4.1  join線程 758
16.4.2  后臺(tái)線程 759
16.4.3  線程睡眠:sleep 760
16.4.4  線程讓步:yield 761
16.4.5  改變線程優(yōu)先級(jí) 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)運(yùn)行 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  線程相關(guān)類 789
16.10.1  ThreadLocal類 789
16.10.2  包裝線程不安全的集合 791
16.10.3  線程安全的集合類 792
16.11  本章小結(jié) 792
第17章  網(wǎng)絡(luò)編程 793
17.1  網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí) 794
17.1.1  網(wǎng)絡(luò)基礎(chǔ)知識(shí) 794
17.1.2  IP地址和端口號(hào) 795
17.2  Java的基本網(wǎng)絡(luò)支持 796
17.2.1  使用InetAddress 796
17.2.2  使用URLDecoder和URLEncoder 797
17.2.3  使用URL和URLConnection 798
17.3  基于TCP協(xié)議的網(wǎng)絡(luò)編程 806
17.3.1  TCP協(xié)議基礎(chǔ) 806
17.3.2  使用ServletSocket創(chuàng)建TCP服務(wù)器端 807
17.3.3  使用Socket進(jìn)行通信 807
17.3.4  加入多線程 810
17.3.5  記錄用戶信息 813
17.3.6  使用NIO實(shí)現(xiàn)非阻塞Socket通信 823
17.4  基于UDP協(xié)議的網(wǎng)絡(luò)編程 829
17.4.1  UDP協(xié)議基礎(chǔ) 829
17.4.2  使用DatagramSocket發(fā)送、接收數(shù)據(jù) 829
17.4.3  使用MulticastSocket實(shí)現(xiàn)多點(diǎn)廣播 834
17.5  使用代理服務(wù)器 845
17.5.1  直接使用Proxy創(chuàng)建連接 845
17.5.2  使用ProxySelector選擇代理服務(wù)器 847
17.6  本章小結(jié) 849
本章練習(xí) 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  類初始化的時(shí)機(jī) 854
18.2  類加載器 855
18.2.1  類加載器簡(jiǎn)介 856
18.2.2  類加載機(jī)制 857
18.2.3  創(chuàng)建并使用自定義的類加載器 858
18.2.4  URLClassLoader類 862
18.3  通過反射查看類信息 863
18.3.1  獲得Class對(duì)象 863
18.3.2  從Class中獲取信息 864
18.4  使用反射生成并操作對(duì)象 868
18.4.1  創(chuàng)建對(duì)象 868
18.4.2  調(diào)用方法 870
18.4.3  訪問屬性值 873
18.4.4  操作數(shù)組 874
18.5  使用反射生成JDK動(dòng)態(tài)代理 875
18.5.1  使用Proxy和InvocationHandler創(chuàng)建動(dòng)態(tài)代理 876
18.5.2  動(dòng)態(tài)代理和AOP 878
18.6  反射和泛型 882
18.6.1  泛型和Class類 882
18.6.2  使用反射來獲取泛型信息 884
18.7  本章小結(jié) 885
本章練習(xí) 886
上善若水——兼談我的創(chuàng)作理念 887

本目錄推薦

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