簡介
本書是世界級程式設計大師Herbert Schildt的作品,全面介紹了Java語言、Java標準庫和Java開發環境。
全書從Java語言的基礎知識入手,內容涵蓋了J2SE 5中的新增特性,如泛型、自動裝箱、枚舉、元數據、並發類庫等。本書共分為4個部分,第1部分介紹Java語言,第2部分討論標準Java庫,第3部分探討Java開發環境,第4部分是Java的開發實例,各部分前後銜接,聯繫緊密。
本書是Java語言及其核心庫的完全參考指南,無論是Java編程新手還是有豐富經驗的專業人員,都可從本書受益。
目錄
第1部分Java語言
第1章Java的起源 3
1.1Java的由來 3
1.1.1現代程式語言的誕生:C 3
1.1.2C++:更上一層樓 4
1.1.3Java出現的時機已經到來 5
1.2Java的誕生5
1.3Java對Internet的重要性 6
1.3.1Java applet 7
1.3.2安全性 7
1.3.3可移植性 7
1.4Java的魔力:位元組碼 7
1.5Java專門用語 8
1.5.1簡單 9
1.5.2面向對象 9
1.5.3健壯 9
1.5.4多執行緒 9
1.5.5體系結構中立 9
1.5.6解釋執行和高性能 10
1.5.7分散式 10
1.5.8動態 10
1.6Java的演化 10
1.7J2SE 5的革命 11
1.8文化革新 11
第2章Java語言概述 12
2.1面向對象編程 12
2.1.1兩種范型 12
2.1.2抽象 12
2.1.3面向對象編程的3個原則 13
2.2第1個簡單程式 17
2.2.1鍵入程式 17
2.2.2編譯程式 17
2.2.3詳細討論第1個示例程式 18
2.3第2個示例程式 19
2.4兩條控制語句 20
2.4.1if語句 21
2.4.2for循環 21
2.5使用程式塊 23
2.6基本辭彙 24
2.6.1空白分隔設定 24
2.6.2標識符 24
2.6.3字面量 24
2.6.4注釋 24
2.6.5分隔設定 25
2.6.6Java關鍵字 25
2.6.7Java類庫 25
第3章數據類型、變數和數組 26
3.1Java語言是一種強類型語言 26
3.2基本類型 26
3.3整型 27
3.3.1位元組型 27
3.3.2短整型 27
3.3.3int 28
3.3.4長整型 28
3.4浮點型 28
3.4.1單精度浮點型29
3.4.2雙精度浮點型29
3.5字元 29
3.6布爾型 30
3.7深入分析字面量 31
3.7.1整數字面量 31
3.7.2浮點字面量 31
3.7.3布爾型字面量 32
3.7.4字元字面量 32
3.7.5字元串字面量 32
3.8變數 33
3.8.1聲明一個變數 33
3.8.2動態初始化 33
3.8.3變數的作用域和生命周期 33
3.9類型轉換與強制轉換 35
3.9.1Java的自動轉換 35
3.9.2強制轉換不兼容的類型 36
3.10表達式中的自動類型提升37
3.11數組 38
3.11.1一維數組 38
3.11.2多維數組 40
3.11.3另一種數組聲明語法 43
3.12關於字元串的幾點解釋 43
3.13C/C++程式設計師請注意指針的用法 44
第4章運算符 45
4.1算術運算符 45
4.1.1基本算術運算符 45
4.1.2模運算符 46
4.1.3算術賦值運算符 47
4.1.4遞增和遞減運算 48
4.2位運算符 49
4.2.1位邏輯運算符 50
4.2.2左移 51
4.2.3右移 52
4.2.4無符號右移 53
4.2.5位運算符賦值 54
4.3關係運算符 55
4.4布爾邏輯運算符 56
4.5賦值運算符 57
4.6?運算符 58
4.7運算符優先權 58
4.8使用圓括弧 59
第5章程式控制語句 60
5.1Java的選擇語句 60
5.1.1if語句 60
5.1.2switch 62
5.2疊代語句 66
5.2.1while 66
5.2.2do-while 67
5.2.3for 69
5.2.4for循環的一些變化 71
5.3for循環的For-Each版本 72
5.3.1多維數組上的疊代 74
5.3.2套用增強的for 75
5.3.3循環嵌套 76
5.4跳轉語句 76
5.4.1使用break 76
5.4.2使用continue 79
5.4.3return 80
第6章介紹類 82
6.1類的基礎 82
6.1.1類的一般形式 82
6.1.2簡單的類 83
6.2聲明對象 85
6.3給對象引用變數賦值 86
6.4介紹方法 87
6.4.1給Box類添加一個方法 87
6.4.2返回值 89
6.4.3添加一個帶有參數的方法 90
6.5構造函式 92
6.6this關鍵字 94
6.7垃圾收集 95
6.8finalize( )方法 95
6.9堆疊類 96
第7章方法和類詳述 98
7.1重載方法 98
7.2把對象作為參數使用 102
7.3參數傳遞 104
7.4返回對象 105
7.5遞歸 106
7.6訪問控制 108
7.7關鍵字static 110
7.8關鍵字final 111
7.9數組 112
7.10嵌套類和內部類 113
7.11String類 115
7.12使用命令行參數 117
7.12.1Varargs:變長參數 118
7.12.2重載Vararg方法 120
7.12.3Varargs和模糊性 121
第8章繼承 123
8.1繼承的基礎知識 123
8.1.1成員訪問和繼承 124
8.1.2一個更實用的示例 125
8.1.3超類變數可以引用子類對象 127
8.2super 127
8.2.1使用super調用超類構造函式 128
8.2.2Super的第二種用法 130
8.3創建多級層次結構 131
8.4何時調用構造函式 133
8.5方法重寫134
8.6動態方法調度 136
8.6.1為什麼重寫方法 137
8.6.2套用方法重寫 138
8.7抽象類 139
8.8在繼承中使用final 141
8.8.1使用final來阻止重寫 141
8.8.2使用final阻止繼承 142
8.9Object類 142
第9章包和接口 143
9.1包 143
9.1.1定義一個包 143
9.1.2查找包和CLASSPATH 144
9.1.3一個簡短的包示例 144
9.2訪問保護 145
9.3導入包 148
9.4接口 149
9.4.1接口定義 150
9.4.2實現接口 150
9.4.3套用接口 152
9.4.4接口中的變數 155
9.4.5可以擴展的接口 156
第10章異常處理 158
10.1異常處理基礎知識 158
10.2異常類型 159
10.3未捕獲的異常 159
10.4try和catch 160
10.5多條catch語句 161
10.6嵌套的try語句 162
10.7throw 164
10.8throws 165
10.9finally 166
10.10Java內置的異常 167
10.11創建自己的異常子類 168
10.12鏈式異常 170
10.13使用異常 171
第11章多執行緒編程 172
11.1Java的執行緒模型 173
11.1.1執行緒的優先權 173
11.1.2同步 173
11.1.3訊息 174
11.1.4Thread 類和Runnable 接口 174
11.2主執行緒 174
11.3創建一個執行緒 176
11.3.1實現Runnable接口 176
11.3.2擴展執行緒 177
11.3.3選擇一種方法 178
11.4創建多執行緒 179
11.5使用isAlive( )和join( ) 180
11.6執行緒的優先權 182
11.7同步 184
11.7.1使用同步方法 184
11.7.2同步語句 186
11.8執行緒間通信 187
11.9暫停、恢復和停止執行緒 192
11.9.1Java 1.1以及之前版本使用的暫停、
恢復和停止執行緒的方法 192
11.9.2暫停、恢復和停止
執行緒的方法 194
11.10使用多執行緒 195
第12章枚舉、自動裝箱和元數據(注釋) 196
12.1枚舉 196
12.1.1枚舉的基礎知識 196
12.1.2values( )和valueOf( )方法 198
12.1.3Java枚舉是類類型 199
12.1.4枚舉繼承Enum 200
12.1.5一個枚舉例子 202
12.2類型包裝器 203
12.2.1Character包裝器 203
12.2.2Boolean包裝器 203
12.2.3數字類型包裝器 204
12.3自動裝箱 205
12.3.1自動裝箱與方法 205
12.3.2表達式中的自動裝/拆箱 206
12.3.3對布爾型和字元型值的
自動裝/拆箱 207
12.3.4自動裝/拆箱有助於
防止發生錯誤 208
12.3.5一點警告 208
12.4元數據(注釋) 208
12.4.1注釋的基礎知識 209
12.4.2指定一個保留策略 209
12.4.3使用映射在運行時獲得注釋 210
12.4.4AnnotatedElement接口 213
12.4.5使用默認值 214
12.4.6標記注釋 215
12.4.7單成員注釋 215
12.4.8內置注釋 216
12.4.9一些限制 217
第13章輸入/輸出、Applet和其他主題 218
13.1輸入/輸出基礎 218
13.1.1流 218
13.1.2位元組流和字元流 218
13.1.3預定義流 220
13.2讀取控制台輸入 220
13.2.1讀取字元 221
13.2.2讀取字元串 222
13.3向控制台寫輸出 223
13.4printwriter類 223
13.5讀寫檔案 224
13.6applet基礎 227
13.7transient和volatile修飾符 228
13.8使用instanceof 229
13.9strictfp231
13.10本地方法 231
13.11使用assert 234
13.12靜態輸入 236
第14章泛型 238
14.1何為泛型 238
14.2一個關於泛型的簡單例子 239
14.2.1泛型只使用對象 241
14.2.2泛型的差別是基於類型參數 241
14.2.3泛型如何增強類型安全 242
14.3帶兩個類型參數的泛型類 243
14.4泛型類的一般形式 244
14.5有界類型 245
14.6使用通配符參數 246
14.7創建一個泛型方法 252
14.8泛型接口 254
14.9原始類型和遺留代碼 256
14.10泛型類層次 258
14.10.1使用泛型超類 258
14.10.2泛型子類 259
14.10.3泛型層次中的運行時
類型比較 260
14.10.4強制轉換 262
14.10.5重寫泛型類中的方法 263
14.11擦拭 264
14.12模糊錯誤 266
14.13泛型的一些局限 267
14.13.1類型參數不能被實例化 267
14.13.2靜態成員方面的局限 268
14.13.3泛型數組的局限 268
14.13.4泛型異常局限 269
14.14有關泛型的最後思考 269
第2部分Java庫
第15章字元串處理 273
15.1String構造函式 273
15.2字元串的長度 275
15.3特殊的字元串操作 275
15.3.1字元串字面量 275
15.3.2字元串的連線 276
15.3.3字元串與其他數據類型的
連線 276
15.3.4字元串轉換和toString( ) 277
15.4字元截取 278
15.4.1charAt( ) 278
15.4.2getChars( ) 278
15.4.3getBytes( ) 279
15.4.4ToCharArray( ) 279
15.5字元串比較 279
15.5.1equals( )和 equalsIgnoreCase( ) 279
15.5.2regionMatches( ) 280
15.5.3startsWith( )和endsWith( ) 280
15.5.4equals( )與== 280
15.5.5compareTo( ) 281
15.6搜尋字元串 282
15.7修改字元串 283
15.7.1substring( ) 283
15.7.2concat( ) 284
15.7.3replace( ) 284
15.7.4trim( ) 285
15.8使用valueOf( )進行數據轉換 285
15.9改變字元串中字元的大小寫 286
15.10附加的String方法 286
15.11StringBuffer 287
15.11.1StringBuffer構造函式 288
15.11.2length( )和capacity( ) 288
15.11.3ensureCapacity( ) 288
15.11.4setLength( ) 289
15.11.5charAt( )和setCharAt( ) 289
15.11.6getChars( ) 289
15.11.7append( ) 290
15.11.8insert( ) 290
15.11.9reverse( ) 291
15.11.10delete( )和deleteCharAt( ) 291
15.11.11replace( ) 292
15.11.12substring( ) 292
15.11.13附加的 StringBuffer 方法 292
15.12StringBuilder 293
第16章java.lang研究 294
16.1簡單類型包裝器 294
16.1.1Number 295
16.1.2Double和Float 295
16.1.3Byte,Short,Integer 和 Long 298
16.1.4Character 303
16.1.5對Character的補充:
支持Unicode代碼點 305
16.1.6Boolean 306
16.2Void 307
16.3Process 307
16.4Runtime 308
16.4.1記憶體管理 309
16.4.2執行其他程式 309
16.5ProcessBuilder 310
16.6System 311
16.6.1使用currentTimeMillis( )
記錄程式執行的時間 312
16.6.2使用arraycopy( ) 313
16.6.3環境屬性 313
16.7Object 314
16.8使用clone( )和Cloneable接口 315
16.9Class 316
16.10classloader318
16.11Math 319
16.11.1先驗函式 319
16.11.2指數函式 320
16.11.3取整函式320
16.11.4其他的數學方法 320
16.12StrictMath 321
16.13Compiler 321
16.14Thread,ThreadGroup和Runnable 321
16.14.1Runnable接口 322
16.14.2Thread 322
16.14.3ThreadGroup 324
16.15ThreadLocal和
InheritableThreadLocal 327
16.16Package 327
16.17RuntimePermission 328
16.18Throwable 328
16.19SecurityManager 328
16.20StackTraceElement 328
16.21Enum類 329
16.22The CharSequence Interface 330
16.23Comparable接口 330
16.24Appendable接口 330
16.25Iterable接口 331
16.26Readable接口 331
16.27java.lang子包 331
16.27.1java.lang.annotation331
16.27.2java.lang.instrument332
16.27.3java.lang.management332
16.27.4java.lang.ref332
16.27.5java.lang.reflect332
第17章java.util第1部分:集合框架 333
17.1集合概述 334
17.2J2SE 5 對集合的修改 334
17.2.1泛型根本性地改變了集合框架 335
17.2.2自動裝箱為簡單類型的使用
提供了便利 335
17.2.3for each類型的for循環 335
17.3Collection接口 335
17.3.1Collection接口 336
17.3.2List接口 337
17.3.3Set接口 338
17.3.4SortedSet接口 338
17.3.5Queue接口 339
17.4Collection(集合)類 340
17.4.1ArrayList類 340
17.4.2LinkedList類 342
17.4.3HashSet類 344
17.4.4LinkedHashSet類 345
17.4.5TreeSet類 345
17.4.6PriorityQueue類 346
17.4.7EnumSet類 346
17.5使用疊代器訪問集合 347
17.5.1使用疊代器 348
17.5.2替代疊代器的For-Each方案 349
17.6在集合中存儲用戶定義的類 350
17.7RandomAccess 接口 351
17.8使用映射 351
17.8.1映射接口 351
17.8.2映射類 353
17.9比較函式 357
17.10集合算法 360
17.11數組 363
17.12引進泛型集合的原因 366
17.13遺留的類和接口 368
17.13.1Enumeration接口 368
17.13.2Vector 369
17.13.3Stack 372
17.13.4Dictionary 373
17.13.5Hashtable(哈希表) 373
17.13.6Properties 376
17.13.7使用store( )和load( ) 378
17.14集合小結 380
第18章java.util第2部分:更多的工具類 381
18.1StringTokenizer(字元串符號賦予器類)
381
18.2BitSet382
18.3Date 384
18.4Calendar 385
18.5GregorianCalendar 388
18.6TimeZone 389
18.7SimpleTimeZone 390
18.8Locale 391
18.9Random 391
18.10observable393
18.10.1Observer接口 394
18.10.2Observer範例 394
18.11Timer和TimerTask 396
18.12Currency 398
18.13Formatter 398
18.13.1Formatter的構造函式 399
18.13.2Formatter方法 399
18.13.3Formatter基礎 400
18.13.4格式化字元串與字元 401
18.13.5格式化數字 402
18.13.6格式化時間和日期 402
18.13.7%n和%%格式指定符 404
18.13.8指定最小域寬 404
18.13.9指定精度 405
18.13.10使用格式標誌 406
18.13.11對齊輸出 406
18.13.12空格、+、0和(標誌 407
18.13.13逗號標誌 407
18.13.14#標誌 408
18.13.15大寫選項 408
18.13.16使用參數索引 408
18.13.17連結Java printf( ) 409
18.14Scanner 409
18.14.1Scanner的構造函式 410
18.14.2Scanner基礎 410
18.14.3一些Scanner套用的例子 412
18.14.4設定定界符 415
18.14.5Scanner的其他特性 416
18.15java.util子包 417
18.15.1java.util.concurrent、
18.15.2java.util.jar417
18.15.3java.util.logging417
18.15.4java.util.prefs417
18.15.5java.util.regex417
18.15.6java.util.zip 417
第19章輸入/輸出:深入探討java.io418
19.1Java的I/O類和接口 418
19.2File 419
19.2.1目錄 421
19.2.2使用FilenameFilter 422
19.2.3listFiles( )替代方案 422
19.2.4創建目錄 423
19.3Closeable和Flushable接口 423
19.4流類Stream 423
19.5位元組流 423
19.5.1InputStream 424
19.5.2OutputStream 424
19.5.3FileInputStream 424
19.5.4FileOutputStream 426
19.5.5ByteArrayInputStream 427
19.5.6ByteArrayOutputStream 428
19.5.7過濾位元組流 429
19.5.8緩衝位元組流 429
19.5.9SequenceInputStream 432
19.5.10PrintStream 433
19.5.11DataOutputStream和
19.5.12RandomAccessFile 436
19.6字元流類 436
19.6.1Reader 436
19.6.2Writer 437
19.6.3FileReader 437
19.6.4FileWriter 438
19.6.5CharArrayReader 439
19.6.6CharArrayWriter 439
19.6.7BufferedReader 440
19.6.8BufferedWriter 441
19.6.9PushbackReader 441
19.6.10PrintWriter 442
19.7使用流I/O 443
19.8序列化 446
19.8.1Serializable接口 446
19.8.2Externalizable接口 446
19.8.3ObjectOutput接口 447
19.8.4ObjectOutputStream類 447
19.8.5ObjectInput接口 448
19.8.6ObjectInputStream 448
19.8.7序列化例子 449
19.9流的優點 450
第20章網路 451
20.1網路基礎 451
20.1.1套接字概覽 451
20.1.2客戶/伺服器模式 452
20.1.3保留套接字 452
20.1.4代理伺服器 452
20.1.5Internet地址 453
20.2Java和網路 453
20.3InetAddress類 454
20.3.1工廠方法 454
20.3.2實例方法 455
20.4Inet4Address和Inet6Address 455
20.5TCP/IP客戶套接字 455
20.6URL 457
20.7URLConnection類 458
20.8TCP/IP伺服器套接字 460
20.9快取代理HTTP伺服器 460
20.10數據報 474
20.10.1DatagramPacket 474
20.10.2數據報伺服器和客戶端 474
20.11URI類 476
20.12J2SE 5新增的類 476
第21章Applet類 477
21.1Applet基礎 477
21.2Applet的體系結構 479
21.3Applet的框架 479
21.3.1Applet的初始化與終止 480
21.3.2重寫的update( ) 481
21.4簡單的applet顯示方法 481
21.5請求重畫 483
21.6使用狀態視窗 485
21.7HTML APPLET標記 486
21.8把參數傳遞給applet 487
21.9getDocumentBase( )和getCodeBase( ) 489
21.10AppletContext和showDocument( ) 490
21.11AudioClip接口 491
21.12AppletStub接口 491
21.13向控制台輸出 491
第22章事件處理 492
22.1兩種事件處理機制 492
22.2委託事件模型 492
22.2.1事件 492
22.2.2事件源 493
22.2.3事件監聽器 493
22.3事件類(Event) 493
22.3.1ActionEvent 類 494
22.3.2AdjustmentEvent 類 495
22.3.3ComponentEvent 類 495
22.3.4ContainerEvent類 496
22.3.5FocusEvent 類 496
22.3.6InputEvent類 497
22.3.7ItemEvent類 497
22.3.8KeyEvent類 498
22.3.9MouseEvent 類 499
22.3.10MouseWheelEvent類 500
22.3.11TextEvent類 500
22.3.12WindowEvent類 500
22.4事件源 501
22.5事件監聽器接口 502
22.5.1ActionListener接口 502
22.5.2AdjustmentListener接口 502
22.5.3ComponentListener接口 502
22.5.4ContainerListener接口 503
22.5.5FocusListener接口 503
22.5.6ItemListener接口 503
22.5.7KeyListener接口 503
22.5.8mouseListener接口 503
22.5.9MouseMotionListener接口 504
22.5.10MouseWhellListener接口 504
22.5.11TextListener接口 504
22.5.12WindowFocusListener接口 504
22.5.13WindowListener接口 504
22.6使用委託事件模型 504
22.6.1處理滑鼠事件 505
22.6.2處理鍵盤事件 507
22.7適配器類 509
22.8內部類 511
第23章介紹AWT:使用視窗、圖形、
文本 513
23.1AWT類 513
23.2視窗基本元素 515
23.2.1組件 515
23.2.2容器 515
23.2.3面板 515
23.2.4視窗 516
23.2.5框架 516
23.2.6畫布 516
23.3使用框架視窗 516
23.3.1設定視窗尺寸 516
23.3.2隱藏和顯示視窗 517
23.3.3設定視窗標題 517
23.3.4關閉框架視窗 517
23.4在applet中創建框架視窗 517
23.5創建視窗化程式 522
23.6在視窗中顯示信息 524
23.7處理圖形 524
23.7.1畫直線 524
23.7.2畫矩形 525
23.7.3畫橢圓和圓弧 526
23.7.4畫圓弧 526
23.7.5畫多邊形 527
23.7.6縮放圖形 528
23.8處理顏色 529
23.8.1Color方法 529
23.8.2設定當前圖形顏色 530
23.8.3一個演示顏色的applet 530
23.9設定畫圖模式 531
23.10處理字型 532
23.10.1確定可用字型 533
23.10.2創建和選擇字型 534
23.10.3獲取字型信息 535
23.11使用FontMetrics管理文本輸出 536
23.11.1顯示多行文本 537
23.11.2居中文本 538
23.11.3多行文本對齊 539
第24章使用AWT控制項、布局管理器和
選單 543
24.1控制項基礎知識 543
24.1.1添加和刪除控制項 543
24.1.2對控制項的回響 544
24.2標籤 544
24.3使用按鈕 545
24.4使用複選框 547
24.5複選框組 549
24.5.1選項控制項 551
24.5.2處理選項列表 551
24.6使用列表框 553
24.7管理滾動條 555
24.8使用文本域TextField 557
24.9使用TextArea 559
24.10了解布局管理器 561
24.10.1FlowLayout 562
24.10.2BorderLayout 563
24.10.3使用Insets 564
24.10.4GridLayout 565
24.10.5卡片布局CardLayout 566
24.10.6GridBagLayout 569
24.11選單欄和選單 572
24.12對話框 577
24.13FileDialog 580
24.14通過擴展AWT組件處理事件 582
24.14.1擴展按鈕 583
24.14.2擴展複選框 584
24.14.3擴展複選框組 584
24.14.4擴展選項 585
24.14.5擴展列表框 586
24.14.6擴展滾動條 586
24.15對控制項、選單和布局管理器的研究 587
第25章圖像 588
25.1檔案格式 588
25.2圖像基礎:創建、裝載和顯示 588
25.2.1創建圖像對象 589
25.2.2裝載圖像 589
25.2.3顯示圖像 589
25.3ImageObserver 590
25.4雙緩衝技術 591
25.5MediaTracker 594
25.6ImageProducer 596
25.7ImageConsumer 597
25.8ImageFilter 599
25.8.1CropImageFilter 600
25.8.2RGBImageFilter 601
25.9單元格動畫 610
25.10其他成像類 612
第26章並發實用工具 613
26.1並發API包 613
26.1.1java.util.concurrent 614
26.1.2java.util.concurrent.atomic 614
26.1.3java.util.concurrent.locks 614
26.2使用同步對象 614
26.2.1Semaphore 615
26.2.2CountDownLatch 619
26.2.3CyclicBarrier 620
26.2.4Exchanger 622
26.3使用執行程式 624
26.3.1執行程式的簡單例子 624
26.3.2使用Callable和Future 626
26.4TimeUnit枚舉 628
26.5並發集合 629
26.6鎖 629
26.7原子操作 631
26.8並發實用工具和
Java傳統方法的對比 632
第27章NIO、規則表達式和其他包 633
27.1核心JavaAPI包 633
27.2新的I/O包 634
27.2.1NIO基礎知識 635
27.2.2Charsets和Selectors 637
27.2.3使用新的I/O系統 637
27.2.4 NIO是未來的I/O解決方案嗎 642
27.3規則表達式處理 642
27.3.1Pattern 642
27.3.2 Matcher 642
27.3.3規則表達式語法 643
27.3.4 演示模式匹配 644
27.3.5雙模式匹配選項 648
27.3.6研究規則表達式 648
27.4反射 648
27.5遠程方法調用 651
27.6文本格式化 654
27.6.1DateFormat類 654
27.6.2SimpleDateFormat類 655
第3部分Java軟體開發技術
第28章java bean659
28.1什麼是Java Bean 659
28.2Java Bean的優點 659
28.3反省 660
28.3.1設計屬性模式 660
28.3.2設計事件模式 661
28.3.3方法和設計模式 661
28.3.4使用BeanInfo接口 661
28.4綁定和約束屬性 662
28.5持久性 662
28.6自定義器 662
28.7Java Bean API 662
28.7.1Introspector 664
28.7.2PropertyDescriptor 664
28.7.3EventSetDescriptor 664
28.7.4MethodDescriptor 664
28.8開發一個簡單的Bean 664
第29章Swing導讀 668
29.1JApplet 669
29.2JFrame和JComponent 669
29.3圖示和標籤 669
29.4處理執行緒問題 671
29.5文本域 672
29.6按鈕 673
29.6.1JButton類 674
29.6.2複選框 675
29.6.3單選按鈕 677
29.7組合框 678
29.8選項卡窗格 680
29.9滾動窗格 682
29.10樹 683
29.11深入研究Swing 686
第30章Servlet 687
30.1背景知識 687
30.2Servlet的生命周期 688
30.3使用Tomcat開發Servlet 688
30.4簡單的Servlet 689
30.4.1創建和編譯Servlet原始碼 689
30.4.2啟動Tomcat 690
30.4.3啟動Web瀏覽器並請求Servlet 690
30.5Servlet API 690
30.6javax.servlet包 691
30.6.1Servlet接口 691
30.6.2ServletConfig接口 692
30.6.3servletContext接口 692
30.6.4ServletRepuest接口 692
30.6.5ServletResponse接口 693
30.6.6GenericServlet類 693
30.6.7ServletInputStream類 693
30.6.8ServletOutputStream類 694
30.6.9Servlet 異常類 694
30.7讀取Servlet參數 694
30.8javax.Servlet.http包 695
30.8.1HttpServletRequest接口 695
30.8.2HttpServletResponse接口 696
30.8.3HttpSession接口 697
30.8.4HttpSessionBindingListener接口 697
30.8.5Cookie類 697
30.8.6HttpServlet類 698
30.8.7HttpSessionEvent類 699
30.8.8HttpSessionBindingEvent類 699
30.9處理HTTP請求和回響 700
30.9.1處理HTTP GET請求 700
30.9.2處理HTTP POST請求 701
30.10使用Cookie 702
30.11會話追蹤 703
第4部分Java套用
第31章金融套用中的applet和servlet 707
31.1計算貸款的償還額 707
31.1.1RegPay域 710
31.1.2init( )方法 710
31.1.3actionPerformed( )方法 712
31.1.4paint( )方法 712
31.1.5compute( )方法 713
31.2計算投資的長期回報 713
31.3計算達到長期回報所需的初始投資 716
31.4計算達到期望養老金所需的初始投資
719
31.5計算給定投資的養老金最大值 722
31.6計算貸款餘額 724
31.7創建用於金融計算的Servlet 727
31.7.1將RegPay applet轉換為servlet 727
31.7.2RegPay servlet 728
31.8一些嘗試 730
第32章使用Java創建下載管理器 731
32.1理解Internet下載 731
32.2下載管理器概述 732
32.3Download類 732
32.3.1Download變數 735
32.3.2Download的構造函式 735
32.3.3download( )方法 735
32.3.4run( )方法 736
32.3.5stateChanged( )方法 738
32.3.6操作和存取方法 739
32.4ProgressRenderer類 739
32.5DownloadsTableModel類 740
32.5.1addDownload( )方法 741
32.5.2clearDownload( )方法 741
32.5.3getColumnClass( )方法 742
32.5.4getValueAt( )方法 742
32.5.5update( )方法 742
32.6DownloadManager類 743
32.6.1DownloadManager變數 747
32.6.2DownloadManager構造函式 747
32.6.3verifyUrl( )方法 747
32.6.4tableSelectionChanged( )方法 748
32.6.5updateButtons( )方法 748
32.6.6操作事件的處理 749
32.7編譯並運行下載管理器 749
32.8改進下載管理器 750
附錄AJava的文檔注釋 751