內容簡介
本書分為10部分共30章,涵蓋了Java SE開發環境配置、程式設計基礎、面向對象、工具API、GUI開發、圖形開發、網路編程、密碼編程、反射和綜合案例。本書使用的開發環境是JDK 1.6+Eclipse 3.3,逐步引領讀者從基礎到各個知識點的學習,全書內容由淺入深,並輔以大量的實例說明,書中階段性地安排了實踐指導部分。本書提供了所有實例的原始碼,供讀者學習參考使用。本書為學校教學量身定做,供高校Java SE開發相關課程使用,也可供沒有Java SE開發基礎的程式設計師作為入門用書,更可以為社會Java培訓班作為教材使用,對於缺乏項目開發經驗的程式設計師來說可用於快速積累項目開發經驗。
圖書目錄
第1部分入門
第1章Java入門
本章術語
1.1認識Java
1.1.1認識程式語言
1.1.2Java的來歷
1.1.3Java為什麼流行
1.1.4Java的三個版本
1.1.5編程前的準備工作
1.2安裝JDK
1.2.1獲取JDK
1.2.2安裝JDK
1.2.3安裝目錄介紹
1.2.4環境變數設定
1.3開發第一個Java程式
1.3.1如何編寫原始碼
1.3.2如何將原始碼編譯成.class檔案
1.3.3如何執行.class檔案
1.3.4新手常見錯誤
1.4用Eclipse開發Java程式
1.4.1什麼是Eclipse
1.4.2安裝Eclipse
1.4.3如何建立項目
1.4.4如何開發Java程式
1.4.5如何維護項目
本章知識體系
第2部分程式設計基礎
第2章程式設計基礎:變數及其運算
本章術語
2.1認識變數
2.1.1什麼是變數
2.1.2變數有哪些類型
2.2如何使用變數
2.2.1如何使用整型變數
2.2.2如何使用浮點型變數
2.2.3如何使用字元型變數
2.2.4如何使用布爾型變數
2.2.5基本數據類型之間的類型轉換
2.2.6基本數據類型和字元串之間的轉換
2.2.7變數的作用範圍
2.3注釋的書寫
2.4Java中的運算
2.4.1算術運算
2.4.2賦值運算
2.4.3關係運算
2.4.4邏輯運算
2.4.5運算符的優先權
本章知識體系
第3章程式設計基礎:流程控制和數組
本章術語
3.1判斷結構
3.1.1為什麼需要判斷結構
3.1.2if結構
3.1.3switch結構
3.2認識循環結構
第8章實踐指導2
術語複習
8.1單例模式的設計
8.1.1需求簡介
8.1.2不用單例模式的效果
8.1.3最原始的單例模式
8.1.4首次改進
8.1.5再次改進
8.1.6思考題
8.2利用繼承和多態擴充程式功能
8.2.1需求簡介
8.2.2實現方法
8.2.3出現的問題
8.2.4改進
8.2.5測試
第4部分工具API
第9章Java異常處理
第10章Java常用API1
第11章Java常用API2
第12章Java多執行緒開發
第13章JavaIO操作
第14章實踐指導3
第6部分Java圖形開發
第19章Java繪圖:基礎知識
第20章Java繪圖:高級知識
第21章實踐指導5
第3部分面向對象
第5章面向對象編程1
第6章面向對象編程2
第7章面向對象編程3
第8章實踐指導2
第5部分GUI開發
第15章用Swing開發GUI程式
第16章Java界面布局管理
第17章Java事件處理
第18章實踐指導4
第7部分Java網路編程
第22章用TCP開發網路應用程式
第23章用UDP開發網路應用程式
第24章URL編程和Applet開發
第25章實踐指導6
第8部分Java密碼編程
第26章Java加密解密
第27章Java數字簽名
第9部分Java反射
第28章Java反射技術
第29章實踐指導7
第10部分綜合案例
第30章綜合案例:用TCP技術開發即時通信軟體
章節內容介紹
全書共分為10部分,第1部分為入門部分,包括1章。
第1章為Java入門,介紹了Java的發展歷史和Java的運行機制,介紹了Java程式開發需要的準備工作。
第2部分為程式設計基礎部分,包括3章。
第2章為程式設計基礎:變數及其運算,首先介紹了變數的定義以及變數的數據類型,然後詳細介紹了各種變數數據類型及其轉換,接下來講解了Java中的各種運算,最後介紹了運算符的優先權。
第3章為程式設計基礎:流程控制和數組,首先介紹了三種結構的用法,並講解了break和continue語句。最後,本章講解了數組的作用、定義、性質和用法,以及二維數組的使用。
第4章為實踐指導1,利用幾個案例對程式設計基礎進行複習。
第3部分為面向對象部分,包括4章。
第5章為面向對象編程1,主要介紹面向對象的基本原理和基本概念,包括類、對象、成員變數、成員函式、構造函式以及函式的重載。
第6章為面向對象編程2,針對面向對象的套用,詳細講解了一些比較高級的概念。首先講解了靜態變數、靜態函式、靜態代碼塊,然後講解了封裝、包和訪問控制修飾符,最後簡單介紹類中類的使用。
第7章為面向對象編程3,講解了繼承和覆蓋,接下來講解了多態性、抽象類和接口的套用。最後講解了final關鍵字、Object類、jar命令,以及Java文檔的使用。
第8章為實踐指導2,利用幾個案例,來對面向對象內容進行複習。
第4部分為工具API部分,包括6章。
第9章為Java異常處理,講解了異常處理的原理以及需要注意的問題。
第10章為Java常用API1,講解數值運算、字元串處理、數據類型轉換和常見系統類。
第11章為Java常用API2,講解Java編程中重要的工具類,重點講解集合框架和日期操作。
第12章為Java多執行緒開發,對多執行緒的開發、執行緒的控制以及執行緒的安全性進行講解。
第13章為JavaIO操作,對檔案的操作、位元組流的讀寫和字元流的讀寫進行講解,最後將對RandomAccessFile類和Properties類進行介紹。
第14章為實踐指導3,利用幾個案例對工具API進行複習。
第5部分為JavaGUI開發部分,包括4章。
第15章為用Swing開發GUI程式,講解javax.swing中的一些API,主要涉及視窗開發、控制項開發、顏色、字型和圖片開發,最後講解了一些常見功能。
第16章為Java界面布局管理,講解幾種最常見的布局:FlowLayout、GridLayout、BorderLayout、空布局以及其他一些比較複雜的布局方式。最後用一個計算器程式將其進行了總結。
第17章為Java事件處理,首先講解事件的基本原理,然後講解事件的開發流程,接下來講解幾種最常見的事件的處理,最後講解用Adapter簡化事件的開發。
第18章為實踐指導4,利用一個用戶管理系統的案例,來對前面內容進行複習。
第6部分為Java圖形開發部分,包括3章。
第19章為Java繪圖:基礎知識,首先講解了畫圖的原理,以及畫圖的方法,然後講解了畫字元串,最後講解了畫圖片,以及圖片的縮放、裁剪和旋轉。
第20章為Java繪圖:高級知識,重點圍繞鍵盤和滑鼠操作畫圖來進行講解,最後講解動畫的原理和實現,以及雙緩衝和圖像保存的問題。
第21章為實踐指導5,利用兩個小軟體的開發,來對前面內容進行複習。
第7部分為Java網路編程部分,包括4章。
第22章為用TCP開發網路應用程式,利用TCP編程,實現一個簡單的聊天室。
第23章為用UDP開發網路應用程式,基於UDP協定的客戶端和伺服器端之間的通信實現雙向聊天系統和多客戶聊天系統。
第24章為URL編程和Applet開發,針對網路編程中另外兩個比較常見的內容:URL編程和Applet開發進行講解。
第25章為實踐指導6,將利用一個網路打字遊戲,來對網路編程內容進行複習。
第8部分為Java密碼編程部分,包括2章。
第26章為Java加密解密,講解加解密原理,並以Java語言為例,實現了一些常見的加密解密算法。
第27章為Java數字簽名,講解了數字簽名的原理,以Java語言為例,實現了數字簽名算法。
第9部分為Java反射編程部分,包括2章。
第28章為Java反射技術,對反射技術進行講解。
第29章為實踐指導7,用反射技術編寫簡單的框架,通過兩個小的框架進行講解。
第10部分為綜合案例部分,包括1章。
第30章為綜合案例:用TCP技術開發即時通信軟體,用一個即時通信軟體的案例,來對本書大部分內容進行複習。
由於時間倉促和作者的水平有限,書中的錯誤和不妥之處在所難免,敬請讀者批評指正。
有關本書的意見反饋和諮詢,讀者可在清華大學出版社網站相關版塊中與筆者進行交流。
郭克華
2012年3月
目錄
第1部分入門
第1章Java入門
本章術語
1.1認識Java
1.1.1認識程式語言
1.1.2Java的來歷
1.1.3Java為什麼流行
1.1.4Java的三個版本
1.1.5編程前的準備工作
1.2安裝JDK
1.2.1獲取JDK
1.2.2安裝JDK
1.2.3安裝目錄介紹
1.2.4環境變數設定
1.3開發第一個Java程式
1.3.1如何編寫原始碼
1.3.2如何將原始碼編譯成.class檔案
1.3.3如何執行.class檔案
1.3.4新手常見錯誤
1.4用Eclipse開發Java程式
1.4.1什麼是Eclipse
1.4.2安裝Eclipse
1.4.3如何建立項目
1.4.4如何開發Java程式
1.4.5如何維護項目
本章知識體系
第2部分程式設計基礎
第2章程式設計基礎:變數及其運算
本章術語
2.1認識變數
2.1.1什麼是變數
2.1.2變數有哪些類型
2.2如何使用變數
2.2.1如何使用整型變數
2.2.2如何使用浮點型變數
2.2.3如何使用字元型變數
2.2.4如何使用布爾型變數
2.2.5基本數據類型之間的類型轉換
2.2.6基本數據類型和字元串之間的轉換
2.2.7變數的作用範圍
2.3注釋的書寫
2.4Java中的運算
2.4.1算術運算
2.4.2賦值運算
2.4.3關係運算
2.4.4邏輯運算
2.4.5運算符的優先權
本章知識體系
第3章程式設計基礎:流程控制和數組
本章術語
3.1判斷結構
3.1.1為什麼需要判斷結構
3.1.2if結構
3.1.3switch結構
3.2認識循環結構
3.2.1為什麼需要循環結構
3.2.2while循環
8.1單例模式的設計
8.1.1需求簡介
8.1.2不用單例模式的效果
8.1.3最原始的單例模式
8.1.4首次改進
8.1.5再次改進
8.1.6思考題
8.2利用繼承和多態擴充程式功能
8.2.1需求簡介
8.2.2實現方法
8.2.3出現的問題
8.2.4改進
8.2.5測試
第4部分工具API
第9章Java異常處理
本章術語
9.1認識異常
9.1.1生活中的異常
9.1.2軟體中的異常
9.1.3為什麼要處理異常
9.1.4異常機理
9.1.5常見異常
9.2異常的就地捕獲
9.2.1為什麼要就地捕獲
9.2.2如何就地捕獲異常
9.2.3如何捕獲多種異常
9.2.4用finally保證安全性
9.3.1為什麼要向前拋出
9.3.2如何向前拋出
9.4自定義異常
9.4.1為什麼需要自定義異常
9.4.2如何自定義異常
本章知識體系
第10章Java常用API1
本章術語
10.1數值運算
10.1.1用Math類實現數值運算
10.1.2實現隨機數
10.2用String類進行字元串處理
10.3用StringBuffer類進行字元串處理
10.4基本數據類型的包裝類
10.4.1認識包裝類
10.4.2通過包裝類進行數據轉換
10.5常用系統類
10.5.1認識System類
10.5.2認識Runtime類
本章知識體系
第11章Java常用API2
本章術語
11.1認識Java集合
11.1.1為什麼需要集合
11.1.2Java中的集合
11.2使用一維集合
11.2.1認識一維集合
11.2.2使用List集合
11.2.3使用Set集合
11.2.4使用Collections類對集合進行處理
11.2.5使用泛型簡化集合操作
11.3Java中的二維集合
11.3.1使用Map集合
11.3.2使用Hashtable和Properties
11.4日期操作
11.4.1認識Date類
11.4.2認識Calendar類
11.4.3如何格式化日期
11.4.4更進一步: 如何格式化數值
本章知識體系
第12章Java多執行緒開發
本章術語
12.1認識多執行緒
12.1.1為什麼需要多執行緒
12.1.2繼承Thread類開發多執行緒
12.1.3實現Runnable接口開發多執行緒
12.1.4兩種方法有何區別
12.2如何控制執行緒運行
12.2.1為什麼要控制執行緒運行
12.2.2傳統方法的安全問題
12.2.3如何控制執行緒的運行
12.3執行緒協作安全
12.3.1什麼是執行緒協作
12.3.2一個有問題的案例
12.3.3如何解決
12.4執行緒同步安全
12.4.1什麼是執行緒同步
12.4.2一個有問題的案例
12.4.3如何解決
12.4.4小心執行緒死鎖
12.5認識定時器
12.5.1為什麼需要定時器
12.5.2如何使用定時器
本章知識體系
第13章Java IO操作
本章術語
13.1認識IO操作
13.2用File類操作檔案
13.2.1認識File類
13.2.2使用File類操作檔案
13.2.3使用File類操作目錄
13.3位元組流的輸入輸出
13.3.1認識位元組流
13.3.2如何讀寫檔案
13.3.3如何讀寫對象
13.4字元流的輸入輸出
13.4.1認識字元流
13.4.2如何讀寫檔案
13.4.3如何進行鍵盤輸入
13.5和IO操作相關的其他類
13.5.1用RandomAccessFile類進行檔案讀寫
13.5.2使用Properties類
本章知識體系
第14章實踐指導3
術語複習
14.1字元頻率統計軟體
14.1.1軟體功能簡介
14.1.2重要技術
14.1.3項目結構
14.1.4代碼編寫
14.1.5思考題
14.2文本翻譯軟體
14.2.1軟體功能簡介
14.2.2重要技術
14.2.3項目結構
14.2.4代碼編寫
14.2.5思考題
14.3用享元模式最佳化程式性能
14.3.1為什麼需要享元模式
14.3.2重要技術
14.3.3代碼編寫
14.3.4思考題
第5部分GUI開發
第15章用Swing開發GUI程式
本章術語
15.1認識GUI和Swing
15.1.1什麼是GUI
15.1.2什麼是Swing
15.2使用視窗
15.2.1用JFrame類開發視窗
15.2.2用JDialog類開發視窗
15.3使用控制項
15.3.1什麼是控制項
15.3.2標籤、按鈕、文本框和密碼框
15.3.3單選按鈕、複選框和下拉列表框
15.3.4選單
15.3.5使用JOptionPane
15.3.6其他控制項
15.4顏色、字型和圖像
15.4.1如何使用顏色
15.4.2如何使用字型
15.4.3如何使用圖片
15.5幾個有用的功能
15.5.1如何設定界面的顯示風格
15.5.2如何獲取螢幕大小
15.5.3如何用默認應用程式打開檔案
15.5.4如何將程式顯示為系統托盤
本章知識體系
第16章Java界面布局管理
本章術語
16.1認識布局管理
16.1.1為什麼需要布局管理
16.1.2認識LayoutManager
16.2使用FlowLayout
16.2.1什麼是FlowLayout
16.2.2如何使用FlowLayout
16.3使用GridLayout
16.3.1什麼是GridLayout
16.3.2如何使用GridLayout
16.4使用BorderLayout
16.4.1什麼是BorderLayout
16.4.2如何使用BorderLayout
16.5綜合案例: 計算器
16.5.1案例需求
16.5.2關鍵技術
16.5.3代碼編寫
16.6使用空布局
16.6.1什麼是空布局
16.6.2如何使用空布局
本章知識體系
第17章Java事件處理
本章術語
17.1認識事件處理
17.1.1什麼是事件
17.1.2事件處理代碼的編寫
17.1.3另外幾種編程風格
17.2處理ActionEvent
17.2.1什麼情況發出ActionEvent
17.2.2使用ActionEvent解決實際問題
17.3處理FocusEvent
17.3.1什麼情況發出FocusEvent
17.3.2使用FocusEvent解決實際問題
17.4處理KeyEvent
17.4.1什麼情況發出KeyEvent
17.4.2使用KeyEvent解決實際問題
17.5處理MouseEvent
17.5.1什麼情況發出MouseEvent
17.5.2使用MouseEvent解決實際問題
17.6處理WindowEvent
17.6.1什麼情況發出WindowEvent
17.6.2使用WindowEvent解決實際問題
17.7使用Adapter簡化開發
本章知識體系
第18章實踐指導4
術語複習
18.1用戶管理系統功能簡介
18.2關鍵技術
18.2.1如何組織界面
18.2.2如何訪問檔案
18.2.3如何保持狀態
18.2.4還有哪些公共功能
18.3代碼編寫
28.4何時使用反射
本章知識體系
第29章實踐指導7
術語複習
29.1什麼是框架
29.2動態異常處理框架
29.2.1框架功能簡介
29.2.2重要技術
29.2.3框架代碼編寫
29.2.4使用該框架
29.3動態對象組裝框架
29.3.1框架功能簡介
29.3.2引入工廠
29.3.3引入配置檔案
29.3.4重要技術
29.3.5框架代碼編寫
29.3.6使用該框架
第10部分綜 合 案 例
第30章綜合案例: 用TCP技術開發即時通信軟體
術語複習
30.1即時通信軟體功能簡介
30.1.1伺服器界面
30.1.2客戶登錄和註冊
30.1.3訊息收發界面
30.1.4線上名單刷新
30.2項目關鍵技術
30.2.1傳輸訊息如何表示
30.2.2客戶信息如何表示
30.2.3客戶檔案如何保存在伺服器端
30.2.4如何讀寫客戶檔案
30.2.5基本模組結構
30.3編寫伺服器端
30.3.1準備工作
30.3.2編寫app.Server類
30.3.3編寫app.ChatThread類
30.3.4編寫main.Main類
30.4編寫客戶端
30.4.1準備工作
30.4.2編寫app.LoginFrame類
30.4.3編寫app.ChatFrame類
30.4.4編寫app.RegisterFrame類
30.4.5編寫main.Main類
30.5思考題