內容簡介
本書在Java面向對象編程的基礎上,對Java的高級套用進行深入剖析和講解。全書內容涵蓋檔案、IO流、JDBC編程、Swing UI設計、UI高級組件使用、執行緒、Java網路編程、類載入、反射、枚舉、註解、國際化和格式化處理以及Java 8新特性。
書中所有代碼都是基於Java 8環境下調試運行,並對Java 8的Lambda表達式、函式式接口、方法引用、接口的默認方法和靜態方法、Stream API等一些新特性進行全面深入講解和套用。
本書由淺入深對Java SE高級技術進行了系統講解,並且重點突出、強調動手操作能力,以一個項目貫穿所有章節的任務實現,使得讀者能夠快速理解並掌握各項重點知識,全面提高分析問題、解決問題以及動手編碼的能力。
本書適用面廣,可作為高校、培訓機構的Java教材,適用於計算機科學與技術、軟體外包、計算機軟體、計算機網路、電子商務等專業的程式設計課程的教材。
叢書序言
當今IT產業發展迅猛,各種技術日新月異,在發展變化如此之快的年代,學習者已經變得越來越被動。在這種大背景下,如何快速地學習一門技術並能夠做到學以致用,是很多人關心的問題。一本書、一堂課只是學習的形式,而真正能夠達到學以致用目的則是融合在書及課堂上的學習方法,使學習者具備了學習技術的能力。
一、“在實踐中成長”叢書介紹
QST青軟實訓“在實踐中成長”叢書在技術上、教學和學習方法上進行最佳化升級,此次出版的叢書由QST青軟實訓聯合高等教育的專家、IT企業的行業及技術專家共同編寫,既涵蓋新技術及技術的升級,同時融合了深入到高校四年教育中所總結的IT技術學習方法及教學方法。“在實踐中成長”叢書系列教材包括:
《Oracle資料庫套用與開發》
《Android程式設計與開發》
《Linux作業系統》
《ZigBee技術開發——CC2530單片機技術原理及套用》
《Zigbee技術開發——Z-Stack協定棧原理及套用》
《ARM體系結構與接口技術--基於ARM11 S3C6410》
《Linux應用程式開發》
《嵌入式圖形界面開發》
《Altium Designer原理圖設計與PCB製作》
二、“在實踐中成長”叢書的創新點及優勢
1.面向學習者
以一個完整的項目貫穿技術點,以點連線、多線成面,通過項目驅動學習方法使學習者輕鬆的將技術學習轉化為技術能力。
2.面向高校教師
為教學提供完整的課程產品組件及服務,滿足高校教學各個環節的資源支持。
前言
本書不是一本簡單的Java教材,不是知識點的鋪陳,而是致力於將知識點融入實際項目的開發中。作為Java技術教材,最困難的事情是將一些複雜、難以理解的技術和思想讓初學者能夠輕鬆理解並快速掌握。本書由淺入深系統地講解了IO數據流操作,JDBC訪問資料庫的方法、步驟、規範及技巧,GUI界面設計及事件處理技巧,多執行緒實現多任務處理,Socket實現網路編程,以及Java 8新特性的講解和套用。並對每個知識點都進行了深入分析,針對知識點在語法、示例、代碼及任務實現上進行階梯式層層強化,讓讀者對知識點從入門到靈活運用一步一步腳踏實地進行。
本書的特色是採用一個“Q-DMS數據挖掘”項目,將所有章節重點技術進行貫穿,每章項目代碼會層層疊代不斷完善,最終形成一個完整的系統。通過貫穿項目以點連線、多線成面,使得讀者能夠快速理解並掌握各項重點知識,全面提高分析問題、解決問題以及動手編碼的能力。
1.項目簡介
Q-DMS數據挖掘項目是一個基於C/S(Client/Server,客戶/伺服器)架構的系統,由Q-DMS客戶端和Q-DMS伺服器端兩部分組成:
2.貫穿項目模組
Q-DMS貫穿項目的所有模組實現穿插到《Java 8基礎套用與開發》和《
Java 8高級套用與開發》的所有章節中,每個章節的任務均是在前一章節的基礎上進行實現,對項目逐步進行疊代、升級,最終形成一個完整的項目,並將Java課程重點技能點進行強化套用。其中,《
Java 8基礎套用與開發》是基於DOS選單驅動模式下完成數據採集、數據匹配以及數據顯示功能模組的實現;《
Java 8高級套用與開發》是在上一本書所實現的功能基礎上,使用Swing GUI圖形界面用戶事件互動模式疊代實現了數據採集、過濾匹配、數據保存、數據傳送、數據顯示及刷新功能。
3.基礎章節任務實現
本書由QST青軟實訓的趙克玲老師負責本書編寫工作和全書統稿,另外還有郭全友、馮娟娟參與本書的審核和修訂工作。作者均已從事計算機教學和項目開發多年,擁有豐富的教學和實踐經驗。由於時間有限,書中難免有疏漏和不足之處,肯請廣大讀者及專家不吝賜教。本書的相關資源,請到銳聘學院教材叢書資源網book.moocollege.cn下載。
目錄
第1章檔案及IO流
學習路線
本章目標
1.1 檔案
1.1.1 檔案系統和路徑
1.1.2 File類
1.1.3 FilenameFilter接口
1.2 IO流
1.2.1 流的分類
1.2.2 流的體系結構
1.3 位元組流
1.3.1 InputStream
1.3.2 OutputStream
1.4 字元流
1.4.1 Reader
1.4.2 Writer
1.5 過濾流和轉換流
1.5.1 過濾流
1.5.2 轉換流
1.6 對象流
1.6.1 對象序列化與反序列化
1.6.2 ObjectInputStream和ObjectOutputStream
1.7 NIO
1.7.1 NIO概述
1.7.2 Buffer
1.7.3 Channel
1.7.4 NIO.2
1.8 貫穿任務實現
1.8.1 實現【任務1-1】
1.8.2 實現【任務1-2】
1.8.3 實現【任務1-3】
1.8.4 實現【任務1-4】
本章總結
章節練習
上機
第2章JDBC編程
學習路線
本章目標
2.1 JDBC基礎
2.1.1 JDBC簡介
2.1.2 JDBC驅動
2.1.3 JDBC API
2.2 資料庫環境搭建
2.2.1 創建資料庫表
2.2.2 設定Oracle驅動類路徑
2.3 資料庫訪問
2.3.1 載入資料庫驅動
2.3.2 建立數據連線
2.3.3 創建Statement對象
2.3.4 執行SQL語句
2.3.5 訪問結果集
2.4 運算元據庫
2.4.1 execute()方法
2.4.2 executeUpdate()和executeLargeUpdate()方法
2.4.3 PreparedStatement接口
2.4.4 CallableStatement接口
2.4.5 資料庫訪問最佳化
2.5 集元數據
2.5.1 DatabaseMetaData接口
2.5.2 ResultSetMetaData接口
2.6 事務處理
2.6.1 事務
2.6.2 保存點
2.6.3 批量更新
2.7 貫穿任務實現
2.6.1 實現【任務2-1】
2.6.2 實現【任務2-2】
2.6.3 實現【任務2-3】
2.6.4 實現【任務2-4】
本章總結
章節練習
上機
第3章Swing UI設計
學習路線
本章目標
3.1 GUI概述
3.1.1 AWT和Swing
3.1.2 Swing組件層次
3.2 容器
3.2.1 JFrame頂級容器
3.2.2 JPanel中間容器
3.3 布局
3.3.1 FlowLayout流布局
3.3.2 BorderLayout邊界布局
3.3.3 GridLayout格線布局
3.3.4 CardLayout卡片布局
3.3.5 BoxLayout盒布局
3.3.6 NULL空布局
3.4 事件處理
3.4.1 Java事件處理機制
3.4.2 事件類
3.4.3 監聽接口
3.4.4 事件處理步驟
3.4.5 鍵盤事件
3.4.6 滑鼠事件
3.4.7 適配器
3.5 基本組件
3.5.1 Icon圖示
3.5.2 JButton按鈕
3.5.3 JLabel標籤
3.5.4 文本組件
3.5.5 JComboBox組合框
3.5.6 JList列表框
3.5.7 JRadioButton單選按鈕
3.5.8 JCheckBox複選框
3.5.9 計算器
3.6 貫穿任務實現
3.6.1 實現【任務3-1】
3.6.2 實現【任務3-2】
3.6.3 實現【任務3-3】
本章總結
章節練習
上機
第4章高級UI組件
學習路線
本章目標
4.1 對話框
4.1.1 JDialog對話框
4.1.2 JOptionPane標準對話框
4.1.3 JFileChooser檔案對話框
4.1.4 JColorChooser顏色對話框
4.2 選單
4.2.1 下拉式選單
4.2.2 彈出式選單
4.3 工具列
4.4 表格
4.4.1 JTable類及相關接口
4.4.2 使用表格
4.5 樹
4.5.1 JTree類及相關接口
4.5.2 使用樹
4.6 貫穿任務實現
4.6.1 實現【任務4-1】
4.6.2 實現【任務4-2】
4.6.3 實現【任務4-3】
4.6.4 實現【任務4-4】
本章總結
章節練習
上機
第5章執行緒
學習路線
本章目標
5.1 執行緒概述
5.1.1 執行緒和進程
5.1.2 Java執行緒模型
5.1.3 主執行緒
5.2 創建執行緒
5.2.1 繼承Thread類
5.2.2 實現Runnable接口
5.2.3 使用Callable和Future接口
5.3 執行緒生命周期
5.3.1 新建和就緒狀態
5.3.2 運行和阻塞狀態
5.3.3 死亡狀態
5.4 執行緒優先權
5.5 執行緒同步
5.5.1 同步代碼塊
5.5.2 同步方法
5.5.3 同步鎖
5.6 執行緒通信
5.7 Timer和Swing Timer
5.7.1 Timer
5.7.2 Swing Timer
5.8 貫穿任務實現
5.8.1 實現【任務5-1】
本章總結
章節練習
上機
第6章網路編程
學習路線
本章目標
6.1 網路基礎
6.1.1 網路類型
6.1.2 TCP/IP協定
6.1.3 IP位址和連線埠
6.1.4 域名與DNS
6.2 Java網路API
6.2.1 InetAddress類
6.2.2 URL類
6.2.3 URLConnection類
6.2.4 URLDecoder和URLEncoder類
6.3 基於TCP的網路編程
6.3.1 Socket類
6.3.2 ServerSocket類
6.3.3 聊天室
6.4 貫穿任務實現
6.4.1 實現【任務6-1】
6.4.2 實現【任務6-2】
6.4.3 實現【任務6-3】
本章總結
章節練習
上機
第7章Java高級套用
學習路線
本章目標
7.1 類載入
7.1.1 Class類
7.1.2 類載入步驟
7.1.3 類載入器
7.1.4 ClassLoader類
7.2 反射
7.2.1 Executable抽象類
7.2.2 Constructor類
7.2.3 Method類
7.2.4 Field類
7.2.5 Parameter類
7.3 枚舉
7.3.1 定義枚舉類
7.3.2 包含屬性和方法的枚舉類
7.3.3 Enum類
7.4 註解
7.4.1 基本註解
7.4.2 定義註解
7.4.3 使用註解
7.4.4 元註解
7.5 國際化
7.5.1 Locale類
7.5.2 ResourceBundle類
7.6 格式化處理
7.6.1 數字格式化
7.6.2 貨幣格式化
7.6.3 日期格式化
7.6.4 Java 8新增的DateTimeFormatter
7.6.5 訊息格式化
7.7 貫穿任務實現
7.7.1 實現【任務7-1】
7.7.2 實現【任務7-2】
本章總結
章節練習
上機
第8章Java 8新特性
學習路線
本章目標
8.1 接口的默認方法和靜態方法
8.2 Lambda表達式
8.2.1 Lambda規範
8.2.2 Lambda套用
8.3 函式式接口
8.4 ::方法引用
8.5 Java 8新增類庫
8.5.1 Optional類
8.5.2 Stream API
8.5.3 Base64類
8.5.4 並行數組
8.6 貫穿任務實現
8.6.1 實現【任務8-1】
8.6.2 實現【任務8-2】
本章總結
章節練習
上機
附錄A WindowBuilder外掛程式
A.1 WindowBuilder簡介
A.2 WindowBuilder外掛程式安裝
A.3 WindowBuilder外掛程式的使用過程
A.4 WindowBuilder實例
A.4.1 窗體的創建
A.4.2 窗體的屬性及布局
A.4.3 控制項的添加與設定
A.4.4 添加按鈕及事件處理
A.4.5 運行代碼
附錄B 資料庫連線池
B.1 資料庫連線池簡介
B.2 DBCP數據源
B.2 C3P0數據源
附錄C RowSet