內容簡介
Java語言是目前最流行、套用最廣泛的程式設計語言。《Java程式設計完全自學手冊》採用“基礎知識+實踐案例”的教學模式,以通俗易懂的語言、精挑細選的實用技巧、翔實生動的操作案例,全面介紹了Java編程知識及案例。其主要內容包括Java語法基礎、算法和流程控制語句、數組、字元串處理、面向對象編程、Servlet和Web套用體系、JSP語法、訪問資料庫、Struts套用、hibernate套用等。
《Java程式設計完全自學手冊》面向Java編程的初、中級用戶,既適合零基礎的Java程式設計初學者入門使用,也適合Java編程愛好者及人員提高編輯技巧使用,還可作為Java培訓班、計算機類成人教育、中職教育、自學考試的教材使用。
編輯推薦
《Java程式設計完全自學手冊》:一本幫初學者輕鬆掌握Java編程的書
Java語法及面向對象編程基礎
Java Web開發環境與技巧
Servlet和Web套用體系
JSP開發詳解
Java資料庫開發案例——遠程教學系統
Struts框架開發案例——線上投票系統
Hibernate框架開發案例——精美留言板
目錄
出版說明
前言
第1章 初識Java 1
1.1 Java語言的誕生和發展 2
1.1.1 Java語言的誕生 2
1.1.2 Java語言的發展 2
1.2 Java語言的特點 2
1.2.1 簡單性 2
1.2.2 面向對象 2
1.2.3 分散式 3
1.2.4 解釋型 3
1.2.5 健壯安全性 3
1.2.6 體系結構中立 3
1.2.7 可移植性 3
1.2.8 高性能 3
1.2.9 多執行緒 3
1.3 搭建Java語言的開發環境 3
1.3.1 JDK簡介 4
1.3.2 安裝JDK 6.0 4
1.3.3配置環境變數6
1.3.4 測試配置環境變數 7
第2章 簡單了解Java程式 9
2.1 認識Java程式 10
2.2 第一個Java程式 10
2.2.1 解釋第一個Java程式 10
2.2.2 在EditPlus3中編寫第一個Java程式 10
2.2.3 在DOS視窗中編譯與運行 11
2.2.4 在EditPlus 3中編譯與運行 13
2.3 Java 標識符 14
2.4java關鍵字15
2.5 為Java程式添加注釋 16
2.5.1單行注釋16
2.5.2 多行注釋 16
2.5.3 文檔注釋 17
2.6 初學者編寫Java程式應注意的問題 18
2.7 本章實例 18
2.8 小結 20
第3章 Java語法基礎 21
3.1 編碼規範 22
3.1.1 Java命名規範 22
3.1.2 代碼編寫規則 22
3.2 數據類型 22
3.2.1 整數數據類型 23
3.2.2 浮點數據類型 23
3.2.3 字元數據類型 24
3.2.4布爾數據類型 24
3.2.5 基本數據類型的套用 24
3.3 Java的常量與變數 25
3.3.1 常量 25
3.3.2 變數 26
3.3.3 變數的作用域 28
3.4 Java中的運算符 28
3.4.1 賦值運算符 28
3.4.2 算術運算符 29
3.4.3 比較運算符 29
3.4.4 邏輯運算符 29
3.4.5 位運算符 30
3.4.6 三元(目)運算符 31
3.4.7 自增和自減運算符 31
3.4.8 表達式 33
3.4.9 運算符優先權 33
3.5 基本數據類型之間的轉換 34
3.5.1 自動類型轉換 34
3.5.2 強制類型轉換 35
3.5.3 表達式的數據類型自動提升 36
3.6 本章實例 36
3.7 小結 39
第4章 算法和流程控制語句 41
4.1 算法 42
4.1.1 什麼是算法 42
4.1.2 算法的特性 42
4.1.3 算法的描述 42
4.1.4 程式的3種控制結構 45
4.2 分支語句 46
4.2.1 簡單的if條件語句 46
4.2.2 if...else條件語句 47
4.2.3 if...else if多分支語句 49
4.2.4 switch多分支語句 51
4.2.5 if語句和switch語句的區別 53
4.3 循環語句 53
4.3.1 for循環語句 54
4.3.2 while循環語句 55
4.3.3 do...while循環語句 56
4.3.4 循環的嵌套 58
4.3.5 各種循環語句的區別 59
4.4 跳轉語句 60
4.4.1 break跳轉語句 60
4.4.2 continue跳轉語句 61
4.4.3 return跳轉語句 62
4.5 本章實例 63
4.6 小結 65
第5章 開發工具MyEclipse 6.0 67
5.1 安裝與啟動MyEclipse 6.0 68
5.1.1 安裝MyEclipse 6.0 68
5.1.2 啟動MyEclipse 6.0 70
5.2 MyEclipse 6.0工作平台 71
5.2.1 常用工具列介紹 71
5.2.2 視圖 72
5.2.3 透視圖 72
5.2.4 編輯器 73
5.3 使用MyEclipse 6.0 73
5.3.1 認識Java項目 73
5.3.2 新建Java項目 74
5.3.3 創建與編寫一個Java類 75
5.3.4 編譯Java類 75
5.3.5 運行Java類 76
5.4 MyEclipse 6.0資源管理 77
5.4.1 導入與刪除Java類 77
5.4.2 導入Java項目 77
5.4.3 導出Java項目 78
5.4.4 刪除Java項目 79
5.5 用斷點調試程式 80
5.6 小結 81
第6章 數 組 83
6.1 數組的概念 84
6.2 一維數組 84
6.2.1 一維數組的聲明與創建 84
6.2.2 一維數組的初始化 85
6.2.3 一維數組的訪問 85
6.2.4 一維數組的操作 86
6.2.5 foreach語句 88
6.2.6 記憶體中的一維數組 89
6.2.7 一維數組的套用舉例 89
6.3 二維數組 91
6.3.1 二維數組的聲明與創建 91
6.3.2 二維數組的初始化 92
6.3.3 二維數組的訪問 92
6.3.4 記憶體中的二維數組 93
6.3.5 二維數組的套用舉例 94
6.4 多維數組 95
6.4.1 多維數組的聲明與創建 95
6.4.2 多維數組的初始化 96
6.4.3 多維數組的訪問 96
6.4.4 使用多維數組 96
6.4.5 記憶體中的三維數組 97
6.5 本章實例 97
6.6 小結 100
第7章 字元串處理 101
7.1 字元串 102
7.1.1 聲明字元串 102
7.1.2 創建字元串 102
7.2 連線字元串 103
7.2.1 字元串與字元串的連線 103
7.2.2 字元串與其他類型數據的連線 105
7.3 字元串常用操作 106
7.3.1 比較字元串是否相等 106
7.3.2 獲取字元串的長度 106
7.3.3 字元串的大小寫轉換 107
7.3.4 查找字元串 108
7.3.5 獲取字元串的子字元串 110
7.3.6 替換字元串與除去字元串中的空格 111
7.3.7 分割字符串 112
7.4 格式化字元串 113
7.4.1 常規類型的格式化 113
7.4.2 日期和時間字元串格式化 115
7.5 StringBuilder類 119
7.5.1 創建字元串生成器 119
7.5.2 字元串生成器的套用 120
7.6 本章實例 122
7.7 小結 125
第8章 面向對象編程 127
8.1 面向對象程式設計 128
8.1.1 面向對象程式設計的概述 128
8.1.2 面向對象程式設計的特點 129
8.2 類 129
8.2.1 類的結構 129
8.2.2 成員變數 130
8.2.3 成員方法 130
8.2.4 訪問修飾符 131
8.3 類的對象 132
8.3.1 創建與使用對象 132
8.3.2 實現類的封裝 134
8.3.3 構造方法(函式) 136
8.3.4 this、static關鍵字 138
8.4 方法 141
8.4.1 方法的參數傳遞機制 141
8.4.2 方法的重載 144
8.5 垃圾回收 145
8.5.1 垃圾回收原理 145
8.5.2 finalize( )方法 146
8.5.3 垃圾回收的本質 146
8.6 本章實例 147
8.7 小結 150
第9章 Java的繼承與多態 151
9.1 繼承 152
9.1.1 繼承的概念與特點 152
9.1.2 訪問父類的成員變數和方法 153
9.1.3 子類的構造函式 154
9.1.4 子類的構造過程 155
9.2 方法的重寫和欄位隱藏 157
9.2.1 方法的重寫 157
9.2.2 欄位的隱藏 159
9.3 多態 160
9.3.1 多態的含義 160
9.3.2 抽象方法與抽象類 161
9.4 final關鍵字的使用 164
9.4.1 最終方法 164
9.4.2 最終類 165
9.5 本章實例 165
9.6 小結 172
第10章 類的高級套用 173
10.1 接口 174
10.1.1 接口的含義 174
10.1.2 創建接口 174
10.1.3 接口的使用 175
10.1.4 接口的繼承 176
10.1.5 接口的多態 177
10.2 內部類 180
10.2.1 在類中定義內部類 180
10.2.2 內部類的使用 181
10.2.3 在方法中定義內部類 183
10.3 包 184
10.3.1 包的描述 184
10.3.2 創建包 184
10.3.3 包的使用 184
10.4 本章實例 188
10.5 小結 191
第11章 Java中的異常處理 193
11.1 異常處理概述 194
11.2 Java常見異常及產生原因 194
11.2.1 空指針異常 194
11.2.2 沒有找到具有指定名稱的類 195
11.2.3 算術異常 195
11.2.4 數組越界異常 195
11.2.5 非法參數異常 196
11.3 異常的處理機制 196
11.3.1 使用try...catch捕獲異常 197
11.3.2 使用throws聲明拋出異常 198
11.3.3 自定義異常與throw關鍵字 199
11.4 本章實例 201
11.5 小結 209
第12章 泛型和集合 211
12.1 引出泛型的原因 212
12.2 理解泛型 213
12.2.1 泛型的定義1 213
12.2.2 泛型的定義2 216
12.2.3 泛型的定義3 218
12.3 集合概述 220
12.4 List集合 220
12.4.1 List集合的性質 220
12.4.2ArrayList類的使用 221
12.4.3 使用泛型 223
12.5 Set集合 225
12.5.1 Set集合的性質 225
12.5.2 HashSet類的使用 226
12.5.3 TreeSet類的使用 228
12.6 Map集合 230
12.6.1 Map集合的性質 230
12.6.2 HashMap類的使用 230
12.7 本章實例 232
12.8 小結 239
第13章 I/O處理 241
13.1 Java I/O體系結構 242
13.2 Java提供的流類 242
13.2.1 I/O中的輸入位元組流 242
13.2.2 I/O中的輸出位元組流 244
13.2.3 位元組流與字元流 246
13.2.4 I/O中的輸入字元流 246
13.2.5 I/O中的輸出字元流 248
13.3 File類 250
13.3.1 檔案類的構造方法 250
13.3.2 獲取檔案信息 251
13.3.3 複製檔案中的內容 253
13.3.4 壓縮檔案 254
13.3.5 分行寫入檔案 255
13.4 本章實例 257
13.5 小結 261
第14章 線 程 263
14.1 執行緒概述 264
14.1.1 執行緒的定義 264
14.1.2 執行緒與進程 264
14.2 執行緒的創建 264
14.2.1 通過繼承Thread類來創建 264
14.2.2 通過實現Runnable接口來創建 266
14.3 執行緒的控制 268
14.3.1 執行緒的讓步 268
14.3.2 執行緒優先權的改變 269
14.4 執行緒的同步 270
14.4.1 執行緒同步所引發的安全問題 271
14.4.2 執行緒的同步機制 272
14.5 執行緒之間的通信 274
14.5.1 監視器的概念 274
14.5.2 一些基本的執行緒通信方法 274
14.6 本章實例 276
14.7 小結 278
第15章 自動裝箱、拆箱與反射 279
15.1 自動裝箱與拆箱 280
15.1.1 自動裝箱 280
15.1.2 拆箱 281
15.2 裝箱與拆箱所帶來的問題 282
15.2.1 “==”的問題 282
15.2.2 拆箱帶來的異常問題 283
15.3 反射 284
15.3.1 Java反射機制概述 284
15.3.2 載入類 285
15.3.3 通過反射查看類信息 285
15.3.4 使用反射生成與操作對象 287
15.4 本章實例 289
15.5 小結 292
第16章 Java Web應用程式開發環境 293
16.1 Tomcat 6.0的使用 294
16.1.1 Tomcat 6.0簡介 294
16.1.2 安裝與啟動Tomcat 6.0 294
16.1.3 在MyEclipse 6.0中配置與測試Tomcat 6.0 296
16.2 Dreamweaver CS3的使用 299
16.2.1 Dreamweaver CS3簡介 299
16.2.2 Dreamweaver CS3安裝 299
16.3 MySQL 5.1資料庫基礎 301
16.3.1 MySQL 5.1資料庫簡介 301
16.3.2 安裝MySQL 5.1 301
16.3.3 安裝mysql administrator1.1外掛程式 306
16.3.4 安裝MySQL Query Browser 1.1外掛程式 308
16.4 MySQL 5.1資料庫的基本操作 310
16.4.1 創建資料庫 310
16.4.2 在資料庫中創建表 311
16.4.3 插入數據 313
16.4.4 MySQL 5.1資料庫的備份 314
16.4.5 MySQL 5.1資料庫還原 315
第17章 Servlet和Web套用體系 317
17.1 C/S模式與B/S模式 318
17.1.1 C/S模式 318
17.1.2 B/S模式 318
17.2 Http請求和回響模式 319
17.2.1 超檔案傳輸協定Http 319
17.2.2 Http請求 319
17.2.3 Http回響 321
17.3HTML簡介322
17.4 Servlet簡介 324
17.4.1 什麼是Servlet 324
17.4.2 認識Servlet 324
17.5 Web套用體系 325
17.5.1 Servlet容器的概念 326
17.5.2 編寫一個簡單的Servlet 326
17.5.3 在MyEclipse6.0中編寫Servlet 327
17.5.4 配置web.xml 329
17.5.5 部署到Tomcat 6.0伺服器上運行 330
17.6 Servlet高級套用 333
17.6.1Servlet生命周期333
17.6.2servletContext與ServletConfig對象 336
17.6.3 在MyEclipse中創建JSP 339
17.6.4 Servlet重定向 340
17.7 小結 344
第18章 學習JSP 345
18.1 JSP概述 346
18.1.1 JSP簡介 346
18.1.2 JSP的優勢 346
18.1.3 JSP的處理過程 346
18.1.4 了解JSP頁面基本結構 346
18.1.5 JSP注釋 351
18.2HttpSession接口 352
18.2.1 JSP Session機制 352
18.2.2 HttpSession的使用 353
18.3 監聽器listener353
18.3.1 什麼是監聽器 353
18.3.2 ServletContext事件監聽器 353
18.3.3 HttpSession事件監聽器 357
18.3.4 ServletRequest的事件監聽器 361
18.4 過濾器 364
18.4.1 過濾器的原理 364
18.4.2 過濾器的創建 365
18.4.3 過濾器的順序 367
18.5 小結 369
第19章 JSP語法 371
19.1 Cookie的套用 372
19.1.1 什麼是Cookie 372
19.1.2 Cookie的好處 372
19.1.3 創建Cookie 372
19.2 JSP的內置對象 372
19.2.1 request對象 373
19.2.2 response對象 374
19.2.3 out對象 374
19.2.4 session對象 375
19.2.5 application對象 380
19.2.6 page和pageContext對象 381
19.2.7 exception對象 381
19.2.8 config對象 382
19.3 JavaBean簡介 387
19.3.1 什麼是JavaBean 388
19.3.2 為什麼使用JavaBean 389
19.4jsp動作元素 389
19.4.1 動作 389
19.4.2 動作 389
19.4.3 動作 390
19.4.4 動作 390
19.4.5 與動作 391
19.5EL表達式396
19.5.1 EL表達式的形式 396
19.5.2 EL表達式功能 397
19.6 JSTL基礎知識 397
19.6.1 JSTL簡介 397
19.6.2 JSTL的核心標籤庫 397
19.7 小結 405
第20章 訪問資料庫 407
20.1 JDBC技術簡介 408
20.2 JDBC連線方式 408
20.2.1 JDBC驅動介紹 408
20.2.2 安裝MySQL驅動 409
20.2.3 JDBC連線資料庫的步驟 409
20.3 JDBC的API 411
20.3.1 驅動程式管理類DriverManager 411
20.3.2 資料庫連線類Connection 412
20.3.3 SQL聲明類Statement 413
20.3.4 SQL聲明類
20.3.5 查詢結果集類ResultSet 414
20.4 連線MySQL資料庫實例 414
20.4.1 創建資料庫連線實例 415
20.4.2 操作MySQL資料庫實例 416
20.5資料庫連線池421
20.5.1 多用戶資料庫連線方法 421
20.5.2 在Tomcat 6.0下配置MySQL 5.1連線池 422
20.5.3 測試連線池設定是否生效 422
20.6 小結 424
第21章 遠程教學系統的實現 425
21.1 遠程教學系統的系統分析 426
21.1.1 可行性分析 426
21.1.2 需求分析 426
21.2 遠程教學系統的總體設計 427
21.2.1 以教師身份登錄的功能模組 428
21.2.2 以學生身份登錄的功能模組 428
21.2.3 以管理員身份登錄的功能模組 428
21.3 遠程教學系統的資料庫設計 429
21.3.1 遠程教學系統的資料庫的E-R圖設計 429
21.3.2 數據表設計 430
21.4 Java Web套用配置檔案web.xml 431
21.5 學生身份登錄的模組設計與實現 436
21.5.1 學生模組JavaBean的設計與實現 436
21.5.2 學生模組運算元據庫方法的設計與實現 438
21.5.3 學生模組Servlet的設計與實現 445
21.5.4 學生模組主頁面的設計與實現 448
21.6 教師身份登錄的模組設計與實現 450
21.6.1 教師模組運算元據庫方法的設計與實現 450
21.6.2 教師模組Servlet的設計與實現 458
21.7 管理員身份登錄的後台模組設計與實現 461
21.7.1 管理員模組資料庫底層方法的設計與實現 461
21.7.2 管理員模組Servlet的設計與實現 464
第22章 Struts套用 469
22.1 Struts簡介 470
22.2 為什麼要用Struts框架 470
22.3 Struts的核心—MVC 470
22.4 Struts的工作原理 471
22.5 Struts的工作流程 471
22.6 Struts的基本配置 472
22.6.1 web.xml配置檔案 472
22.6.2 struts-config.xml配置檔案 473
22.7 表單處理器ActionForm 475
22.7.1 ActionForm類 475
22.7.2 編寫FormBean 477
22.8 Struts中的控制器Action 478
22.8.1 Action類 478
22.8.2 Action的代碼實現 478
22.9 Struts標籤庫 479
22.9.1 導入Struts的標籤庫 479
22.9.2 Struts的HTML標籤 479
22.9.3 Struts的Bean標籤 483
22.9.4 Struts的Logic標籤 485
22.10 小結 487
第23章 線上投票系統的實現 489
23.1 需求分析 490
23.1.1用例分析490
23.1.2 數據流分析 490
23.1.3 數據字典分析 491
23.2 總體設計 491
23.2.1 前台功能設計 491
23.2.2 後台功能設計 491
23.2.3 系統的資料庫設計 492
23.3 系統架構設計 492
23.4 創建基於Struts框架的項目包 493
23.5 創建資料庫連線 494
23.6 編寫系統配置檔案 495
23.7 後台模組的設計與實現 497
23.7.1 標題及內容管理模組JavaBean的設計與實現 497
23.7.2 標題及內容管理模組FormBean的設計與實現 498
23.7.3 標題及內容管理模組底層方法的設計與實現 499
23.7.4 標題及內容管理模組Action的設計與實現 502
23.7.5 後台登錄頁面和主頁面的設計與實現 504
23.8 前台用戶投票模組的設計與實現 506
23.8.1 用戶投票模組底層方法的設計與實現 506
23.8.2 用戶投票模組Action的設計與實現 507
23.8.3 用戶投票模組的頁面設計 508
第24章 Hibernate套用 513
24.1 Hibernate簡介 514
24.2 Hibernate框架概述 514
24.2.1 Hibernate的優勢 514
24.2.2 Hibernate架構 514
24.3 Hibernate 框架主要的API 514
24.3.1 Configuration類 515
24.3.2SessionFactory接口 515
24.3.3 Session接口 516
24.3.4 Query接口 517
24.3.5 Transaction接口 517
24.4 Hibernate的持久化技術 517
24.4.1 什麼是持久化 517
24.4.2 持久化的意義 517
24.4.3持久化類517
24.4.4 Hibernate中的對象狀態 518
24.5 Hibernate框架中的ORM技術 519
24.5.1 持久化類 519
24.5.2 映射檔案 519
24.5.3 Hibernate的配置檔案 520
24.6 Hibernate框架查詢語言 521
24.6.1 HQL中的from子句 521
24.6.2 HQL中的屬性查詢 521
24.6.3 HQL中的更新和刪除 522
24.6.4 HQL中的order by子句 522
24.6.5 HQL中的group by子句 522
24.6.6 HQL中的連線 523
24.7 HQL中的參數綁定 523
24.7.1 按參數名稱綁定 523
24.7.2 按參數位置綁定 523
24.7.3 使用setParameter( )方法來綁定參數 524
24.7.4 使用setProperties( )方法來綁定參數 524
24.8 Hibernate反向工程 524
24.8.1 在MyEclipse 6.0中創建資料庫連線 524
24.8.2 在Java Web項目中加入Hibernate架包 526
24.8.3 在MyEclipse 6.0中生成代碼 528
24.9 小結 529
第25章 製作精美的留言板 531
25.1 需求分析 532
25.1.1 用例分析 532
25.1.2 數據流分析 532
25.1.3 數據字典分析 533
25.2 詳細設計 533
25.2.1 前台功能設計 533
25.2.2 後台功能設計 533
25.2.3 系統的類圖設計 534
25.2.4 系統的資料庫設計 534
25.3 系統總體設計 535
25.3.1 系統的設計思想 535
25.3.2 系統中的過濾器 535
25.3.3 後台管理留言模組設計 536
25.4 創建資料庫連線 537
25.4.1 系統O/R Mapping映射檔案的設計與實現 537
25.4.2 Hibernate.cfg.xml的配置 539
25.5 系統struts-config.xml配置檔案 540
25.6 系統web.xml設計與實現 542
25.7 系統JavaBean設計與實現 543
25.8 後台模組的設計與實現 546
25.8.1 管理員登錄模組的設計與實現 547
25.8.2 回復留言模組的設計與實現 551
25.8.3 查詢留言模組的設計與實現 554
25.8.4 刪除留言模組的設計與實現 559
25.9 前台模組的設計與實現 564
25.9.1 用戶留言模組FormBean的設計與實現 564
25.9.2 用戶留言模組底層方法的設計與實現 565
25.9.3 用戶留言模組Action的設計與實現 566
25.9.4 用戶留言模組的頁面設計與實現 567
文摘
Java語言是目前最流行的程式語言之一,下面將分別從Java語言的誕生和發展兩個方面進行詳細介紹。
Java 語言誕生於1991年,起初被稱為Oak語言,是由Sun公司開發的。Java語言的誕生主要得益於家用電器的晶片設計。最初其開發者想用C++語言來開發家用電器的晶片,但由於晶片種類太多,程式需要進行多次編譯,而且c++語言中的指針一旦操作不慎,就會出現問題,因此其開發者去掉了C++語言中的指針操作、運算符重載和多重繼承等便得到了Java語言。
1995年,Sun公司正式向IT業界推出了Java語言,該語言具有安全、跨平台、面向對象、簡單和適用於網路等顯著特點,當時以Web為主要形式的網際網路技術正在迅猛發展,Java語言的出現迅速引起了程式和軟體公司的極大關注,程式設計師們紛紛嘗試使用Java語言編寫網路應用程式,並利用網路把程式發布到世界各地,IBM、Oracle、微軟、Apple、 Netscape和SGI等大公司紛紛與Sun公司簽訂契約,獲得使用Java平台技術的授權。
Java平台包括三個版本,分別是JAVA SE(J2SE)、Java EE(J2EE)和Java ME(J2ME)。Java平台由JVM(Java Virtual Machine)和Java API(Application Programming Interface)構成,在作業系統中安裝了Java平台之後,Java應用程式即可運行,而目前Java平台已經被嵌入到了幾乎所有的作業系統中。