第1章Java語言概述1
1.1程序設計語言的發展史1
1.2Java語言的發展史5
1.3Java開發環境的配置7
1.4Java程序開發過程及常用工具介紹11
1.4.1Java程序的工作原理11
1.4.2用記事本開發11
1.4.3用Eclipse開發13
1.4.4用JCreator開發17
第2章Java基礎語法19
2.1標識符和關鍵字19
2.2基本數據類型21
2.2.1布爾型21
2.2.2字符型22
2.2.3整數型23
2.2.4浮點型25
2.2.5類型轉換26
2.3常量與變量30
2.4運算符33
2.4.1算術運算符33
2.4.2關繫運算符35
2.4.3邏輯運算符37
2.4.4位運算符38
2.4.5賦值運算符40
2.4.6條件運算符40
2.4.7對像運算符41
2.5語句41
2.5.1分支語句42
2.5.2循環語句45
2.5.3跳轉語句48
2.5.4注釋語句53
2.6輸入參數方式54
第3章類和對像60
3.1面向對像技術基礎60
3.1.1面向對像基本概念60
3.1.2面向對像基本特征62
3.2類64
3.2.1類的定義64
3.2.2成員變量與成員方法66
3.2.3構造方法67
3.2.4main方法70
3.3對像70
3.3.1對像的生成與使用70
3.3.2變量的作用域72
3.3.3對像的內存分配機制73
3.3.4方法參數的傳遞76
3.3.5對像的清除80
3.4this關鍵字80
3.5static關鍵字82
3.6final關鍵字88
3.7import和包90
第4章類的封裝、繼承、多態性及接口94
4.1封裝94
4.1.1類的訪問控制方式94
4.1.2類成員的訪問控制方式94
4.1.3封裝的設計原則96
4.2繼承96
4.2.1extends關鍵字96
4.2.2super關鍵字100
4.2.3構造方法的繼承102
4.3多態性106
4.3.1方法重載106
4.3.2方法覆蓋108
4.4抽像類112
4.5接口116
4.5.1接口的定義116
4.5.2接口的實現117
4.5.3接口的作用120
4.5.4接口與抽像類的區別124
4.6特殊的類125
4.6.1實名內部類125
4.6.2匿名內部類129
4.6.3泛型類132
4.6.4Class類136
第5章數組、字符串和枚舉138
5.1數組138
5.1.1一維數組138
5.1.2二維數組141
5.1.3數組的注意事項143
5.1.4數組的應用143
5.2字符串146
5.2.1不可變字符串String146
5.2.2可變字符串StringBuffer153
5.2.3String與StringBuffer的異同155
5.3字符串與其他數據類型的轉換158
5.3.1將其他數據轉換成字符串158
5.3.2將字符串轉換成其他數據160
5.4枚舉162
5.4.1枚舉定義162
5.4.2枚舉變量和常量163
5.4.3枚舉的常見用法164
第6章Java常用類及接口167
6.1Java API類庫167
6.2java.lang包168
6.2.1Object類170
6.2.2Math類171
6.2.3System類172
6.2.4Runtime類176
6.3java.util包178
6.3.1Date類180
6.3.2Calendar類181
6.3.3Random類184
6.3.4無序集合: Collection接口和Collections類187
6.3.5有序集合: List接口和ArrayList、LinkedList和Vector類188
6.3.6非重復集合: Set接口和HashSet、TreeSet及LinkedHashSet類195
6.3.7映射集合: Map接口和TreeMap類196
6.3.8for循環簡化寫法在集合、數組中的應用198
第7章異常處理202
7.1為什麼要進行異常處理202
7.2Java中的異常類203
7.3異常處理模式205
7.3.1trycatchfinally語句205
7.3.2異常類成員方法207
7.3.3異常捕獲與處理207
7.4重新拋出異常209
7.4.1throws語句209
7.4.2throw語句210
7.5異常處理原則211
第8章流和文件212
8.1流的基本概念212
8.2字節流213
8.2.1輸入字節流213
8.2.2輸出字節流214
8.3字符流216
8.3.1輸入字符流216
8.3.2輸出字符流217
8.3.3字符緩衝流220
8.3.4字節流和字符流的異同222
8.4文件222
8.4.1文件屬性類222
8.4.2隨機訪問文件類226
8.4.3文件過濾接口228
8.5對像序列化230
8.5.1序列化是什麼231
8.5.2什麼情況下需要序列化231
8.5.3對像序列化時發生了什麼231
8.5.4實現序列化的步驟231
8.5.5序列化對像的條件232
8.5.6反序列化232
8.5.7序列化注意事項236
8.6Java中的亂碼問題237
8.6.1Java中字符的表達237
8.6.2Unicode簡介238
8.6.3Unicode編碼方式239
8.6.4Unicode實現方式240
8.6.5字節序245
8.6.6其他編碼方式246
8.6.7Java中的Unicode248
8.6.8如何處理中文亂碼問題255
第9章圖形用戶界面編程259
9.1AWT與Swing259
9.1.1AWT259
9.1.2Swing260
9.2容器組件263
9.2.1JFrame263
9.2.2JPanel268
9.2.3JScrollPane269
9.2.4JSplitPane270
9.3菜單和工具條272
9.3.1菜單組件272
9.3.2工具欄組件274
9.4基本組件276
9.4.1標簽276
9.4.2單行文本框278
9.4.3按鈕280
9.4.4下拉框282
9.4.5列表框284
9.4.6多行文本框286
9.4.7表格組件287
9.4.8樹形組件291
9.4.9進度條組件299
9.5組件常用方法302
9.5.1顏色302
9.5.2透明性303
9.5.3邊框303
9.5.4字體303
9.5.5大小與位置307
9.5.6激活與可見性308
9.6布局管理器309
9.6.1流式布局309
9.6.2邊界布局310
9.6.3盒式布局311
9.6.4網格布局313
9.6.5卡片布局315
9.6.6網格包布局317
9.6.7布局基本原則及復雜布局舉例322
9.6.8界面風格的選擇325
9.7事件處理模型327
9.7.1事件處理機制327
9.7.2事件對像328
9.7.3監聽器接口329
9.7.4編寫事件處理程序331
9.8鼠標事件處理335
9.9事件適配器類337
9.10鍵盤事件處理338
第10章多線程342
10.1線程簡介342
10.1.1進程與線程342
10.1.2線程生命周期342
10.2編寫線程程序344
10.2.1種方法: 繼承Thread類344
10.2.2第二種方法: 實現Runable接口345
10.2.3兩種方法比較347
10.2.4線程基本控制方法348
10.3線程互斥與同步353
10.3.1多線程同步的基本原理355
10.3.2多線程同步實例355
10.4後臺線程358
第11章網絡編程360
11.1網絡編程基礎360
11.1.1網絡編程的兩個基本問題360
11.1.2網絡編程相關的基本概念360
11.2URL編程361
11.2.1URL簡介361
11.2.2URL類362
11.2.3從URL讀取萬維網資源363
11.2.4網絡編程的亂碼問題365
11.2.5利用URLConnection實現雙向通信366
11.3Socket編程368
11.3.1Socket編程的過程368
11.3.2利用Socket實現斷點續傳370
11.3.3利用Socket實現聊天程序380
11.4IntelAddress類384
11.4.1獲取本機的計算機名與IP地址385
11.4.2獲取Internet上主機的IP地址386
第12章數據庫編程389
12.1JDBC概述389
12.1.1JDBC模型389
12.1.2JDBC驅動方式390
12.2JDBC API392
12.3JDBC編程實例394
12.3.1JDBC 驅動程序設置394
12.3.2建立數據庫連接395
12.3.3添加記錄404
12.3.4查詢記錄408
12.3.5刪除記錄412
12.3.6修改記錄415
12.3.7數據庫操作綜合實例419
12.3.8SQL數據庫常用命令430
第13章XML及程序打包433
13.1XML簡介433
13.2XML在Java程序中的應用437
13.2.1DOM編程438
13.2.2加載XML文件441
13.2.3訪問素和屬性443
13.2.4利用XML文件存儲信息445
13.3Java程序的發布451
13.3.1利用cmd工具打包452
13.3.2利用Eclipse打包457
參考文獻461