Java語言是一種純面向對象的通用程序設計語言,具有跨平臺性、可移植性、安全性等優(yōu)點,該語言自從1995年誕生以來,已發(fā)布了近20個版本,語言的類庫不斷豐富,具有非常強勁的活力。
Java語言基本涵蓋了通用程序設計所有的技術,內容繁多,如GUI與事件驅動編程、多線程并發(fā)程序設計、異常處理、I/O文件系統(tǒng)、數(shù)據(jù)庫編程、網絡編程等。為了使本書適合初學者學習,對各章節(jié)的內容進行了取舍,在介紹語言的組成與語法的同時,通過示例展示其應用與基本算法,而不是寫成Java參考手冊。本書針對Java的基本程序設計、面向對象的設計、GUI編程、多線程、數(shù)據(jù)庫編程等重要內容,精心挑選典型的案例,在案例程序中展示相關內容的使用方法,使讀者在例子程序的編寫、運行測試、錯誤修復中進行學習。
對于程序開發(fā)人員,熟練地掌握集成開發(fā)環(huán)境可以大幅提高程序的設計效率。本書采用IDEA集成開發(fā)平臺,該平臺也是當前Java程序開發(fā)人員廣泛使用的平臺。本書介紹了IDEA的下載與安裝、Java開發(fā)包的配置與使用、數(shù)據(jù)庫驅動程序的下載與配置等內容。
本書共有15章。第1章介紹了Java語言的開發(fā)工具包、運行機制,給出了IntelliJ IDEA集成開發(fā)環(huán)境的下載與安裝方法,通過第一個Java程序的創(chuàng)建、編輯與運行,介紹了IDEA的使用。第2章與第3章在介紹了Java程序的基本組成要素之后,給出了其主要語句,包括語句塊、選擇語句與循環(huán)語句,并通過示例展示它們的使用。第4章在簡單介紹面向對象編程的基本概念后,詳細講解了Java語言類的定義、對象創(chuàng)建、方法重載與訪問修飾符等內容。第5章與第6章講解了數(shù)組的定義,以及數(shù)組作為最常用的數(shù)據(jù)結構在數(shù)據(jù)存放與算法設計中的典型應用,并介紹正則表達式及編程中常用的Java類。第7章與第8章講解了面向對象編程中的繼承與多態(tài)、抽象類、接口與泛型類,這部分是對第4章內容的延伸。第9章介紹了異常類、異常對象與異常處理,以及Java異常處理機制是如何提高程序的穩(wěn)健性的。第10章介紹了Java的輸入/輸出操作,講解了字符流與字節(jié)流的應用。第11章講解了多線程技術,通過許多典型的案例使讀者深刻理解多線程編程。第12章與第13章講解了GUI設計與基于事件驅動的編程,介紹了常用的GUI組件、容器、事件監(jiān)聽與處理方法。第14章講解了集合框架與常用的工具類,通過簡單示例展示這些工具類的適用場景。第15章首先通過簡單的示例介紹了數(shù)據(jù)庫的表與SQL語句的使用,使沒有學習過數(shù)據(jù)庫的讀者也能學習Java數(shù)據(jù)庫編程; 然后通過詳細的步驟介紹了MySQL數(shù)據(jù)庫的下載與安裝方法,并通過圖示說明了數(shù)據(jù)庫管理平臺MySQL Workbench的簡單應用; 最后通過示例展示了Java數(shù)據(jù)庫編程技術。
在學習Java語言之前,如果讀者有其他編程語言的基礎,可以快速閱讀第2章、第3章與第5章的內容,重點學習面向對象編程的相關技術。
本書第1章由趙欣編寫,第2、3、10、11、15章由趙逢禹編寫,第4、7、9章由朱麗娟編寫,第5、12、13章由李銳編寫,第6、8、14章由齊福利編寫。全書由趙逢禹和朱麗娟擔任主編,完成全書的修改及統(tǒng)稿工作。
由于編者水平有限,書中不當之處在所難免,歡迎廣大同行和讀者批評指正。
編者
2023年6月
第1章Java語言與集成開發(fā)環(huán)境
1.1Java語言
1.1.1什么是Java
1.1.2Java語言的特點
1.2Java開發(fā)工具包JDK
1.2.1什么是JDK
1.2.2下載與安裝JDK
1.2.3Java API文檔資源與使用
1.3Java的運行機制與JVM
1.3.1Java的運行機制
1.3.2JRE與JVM
1.3.3JDK、JRE、JVM三者的聯(lián)系與區(qū)別
1.4IntelliJ IDEA開發(fā)工具
1.5第一個Java程序
1.5.1創(chuàng)建Java項目
1.5.2Java項目目錄結構
1.5.3在項目中創(chuàng)建包
1.5.4創(chuàng)建Java類
1.5.5編寫Java程序
1.5.6執(zhí)行Java程序
1.6Java程序風格
習題
第2章Java語言基礎
2.1Java程序的基本概念
2.1.1Java程序的組成
2.1.2關鍵字
2.1.3標識符
2.1.4分隔符
2.2控制臺輸入/輸出
2.3基本數(shù)據(jù)類型
2.3.1整型
2.3.2浮點型
2.3.3字符型
2.3.4布爾型
2.4常量和變量
2.4.1常量
2.4.2變量
2.5運算符和表達式
2.5.1算術運算符
2.5.2比較運算符
2.5.3邏輯運算符
2.5.4賦值運算符
2.5.5條件運算符(?:)
2.5.6運算符優(yōu)先級
2.6類型強制轉換
2.6.1自動類型轉換
2.6.2強制類型轉換
習題
第3 章控制語句與算法
3.1Java程序的執(zhí)行流程
3.1.1算法的執(zhí)行
3.1.2語句塊與塊作用域
3.2選擇語句
3.2.1if語句
3.2.2switch語句
3.3循環(huán)語句
3.3.1while語句
3.3.2dowhile語句
3.3.3for語句
3.4跳轉語句
3.4.1break語句
3.4.2continue語句
3.5控制語句編程舉例
習題
第4章對象和類
4.1面向對象編程的基本概念
4.2類和對象
4.2.1類的構成
4.2.2類的使用
4.3this的使用
4.4方法重載
4.4.1成員方法的重載
4.4.2構造方法的重載
4.5類的設計和使用舉例
4.6訪問修飾符
4.6.1公共訪問修飾符public
4.6.2受保護訪問修飾符protected
4.6.3默認訪問修飾符
4.6.4私有訪問修飾符private
4.6.5可見性分析舉例
4.7包
4.7.1常用的系統(tǒng)包
4.7.2包的聲明
4.7.3包的引用
4.8應用舉例
習題
第5章數(shù)組
5.1Java數(shù)組
5.2一維數(shù)組
5.2.1數(shù)組的聲明
5.2.2創(chuàng)建數(shù)組
5.2.3數(shù)組長度
5.2.4數(shù)組的初始化
5.2.5訪問數(shù)組
5.3數(shù)組應用
5.3.1數(shù)組的賦值
5.3.2數(shù)組參數(shù)傳遞
5.3.3數(shù)組作為方法的返回值
5.3.4一維數(shù)組編程舉例
5.4Arrays類與應用
5.5二維數(shù)組
5.5.1二維數(shù)組的聲明、創(chuàng)建和使用
5.5.2二維數(shù)組的應用案例
5.6多維數(shù)組
習題
第6章常用類與正則表達式
6.1Java常用類
6.1.1Object類
6.1.2System類
6.1.3Math類
6.1.4Random類
6.1.5包裝類
6.1.6日期類和時間類
6.1.7輸入/輸出類
6.2字符串類
6.2.1String類
6.2.2StringBuffer類
6.3正則表達式
6.3.1正則表達式簡介
6.3.2正則表達式元字符
6.3.3正則表達式語法
6.3.4正則表達式限定符
6.3.5正則表達式使用
習題
第7章繼承和多態(tài)
7.1繼承
7.1.1繼承的定義
7.1.2成員變量的隱藏與成員方法的覆蓋
7.1.3子類中的構造方法
7.1.4繼承的訪問可見性規(guī)則
7.2動態(tài)綁定機制
7.3多態(tài)
7.3.1編譯時多態(tài)
7.3.2運行時多態(tài)
習題
第8章抽象類、接口與泛型類
8.1抽象類
8.2接口
8.2.1接口的定義
8.2.2類實現(xiàn)接口
8.2.3接口與抽象類的區(qū)別
8.3內部類與匿名類
8.3.1內部類
8.3.2匿名類
8.4泛型
8.4.1泛型類聲明
8.4.2泛型接口
習題
第9章異常處理
9.1異常與異常類
9.1.1異常的概念
9.1.2Java異常類
9.2異常處理機制
9.2.1trycatchfinally結構
9.2.2throw語句拋出異常
9.2.3throws子句拋出異常
9.3自定義異常類
9.4異常處理的優(yōu)點
習題
第10章I/O與文件操作
10.1流的基本概念
10.2字節(jié)流與相關類
10.2.1字節(jié)流與字節(jié)流抽象類
10.2.2字節(jié)流常用子類
10.2.3DataInputStream與DataOutputStream
10.3字符流與相關類
10.3.1FileWriter類
10.3.2FileReader類
10.3.3PrintWriter輸出字符到文件
10.3.4Scanner讀取文本文件
10.4對象輸入/輸出與Serializable接口
10.5文件系統(tǒng)應用舉例
習題
第11章多線程
11.1線程與線程類
11.1.1線程類的定義與多線程運行
11.1.2線程的狀態(tài)與狀態(tài)轉換
11.2使用Runnable接口創(chuàng)建線程類
11.3Thread類與相關操作
11.3.1Thread類
11.3.2設置線程的優(yōu)先級
11.3.3currentThread()方法與interrupt()方法
11.3.4sleep()方法的使用
11.3.5join()方法的使用
11.4線程的同步
11.4.1線程同步示例與同步方法
11.4.2線程鎖同步方法
11.5資源共享時的多線程協(xié)作
11.5.1基于wait()、notify()實現(xiàn)同步
11.5.2基于鎖與條件對象實現(xiàn)同步
11.6線程死鎖
習題
第12章GUI編程基礎
12.1GUI編程概述
12.1.1AWT和Swing
12.1.2Java 用戶界面API庫
12.2Swing容器
12.2.1JFrame窗體
12.2.2JPanel面板
12.3常用的GUI組件
12.3.1JButton按鈕
12.3.2JLabel標簽
12.3.3JTextField文本框
12.3.4JTextArea多行文本框
12.3.5JCheckBox復選框
12.3.6JRadioButton單選按鈕
12.3.7JList列表框
12.3.8JComboBox列表框
12.3.9JTable表格
12.4布局管理器
12.4.1使用布局管理器
12.4.2邊界布局
12.4.3流式布局
12.4.4網格布局
12.4.5Box容器與Box Layout
12.4.6容器的嵌套和布局管理
12.5常見GUI相關輔助類
12.5.1Color類
12.5.2Font類
習題
第13章事件驅動編程
13.1GUI事件處理流程
13.2事件源
13.3事件類
13.4事件處理
13.4.1監(jiān)聽器對象
13.4.2監(jiān)聽器對象的注冊
13.4.3GUI事件處理機制
13.4.4事件處理案例
13.5其他常見事件處理案例
13.5.1GUI中的菜單
13.5.2鼠標相關的交互操作
13.6監(jiān)聽器實現(xiàn)類的代碼簡化
13.6.1監(jiān)聽器的內部類實現(xiàn)
13.6.2監(jiān)聽器的匿名類
13.7JOptionPane對話框
13.7.1Message Dialog消息對話框
13.7.2Confirmation Dialog確認對話框
13.7.3Input Dialog輸入對話框
習題
第14章集合類
14.1集合與Collection框架
14.2Collection接口
14.2.1Set接口與實現(xiàn)類
14.2.2List接口與實現(xiàn)類
14.3List的遍歷
14.3.1增強的for循環(huán)
14.3.2使用Iterator迭代器遍歷
14.4Map接口
14.4.1HashMap集合
14.4.2TreeMap集合
14.5向量、堆棧、隊列
14.5.1Vector
14.5.2Stack
14.5.3LinkedList隊列
習題
第15章數(shù)據(jù)庫編程
15.1關系數(shù)據(jù)庫系統(tǒng)與關系模型
15.2SQL
15.2.1表的創(chuàng)建與刪除
15.2.2表的添加、刪除與更新
15.2.3表的數(shù)據(jù)查詢
15.2.4查詢條件
15.3MySQL數(shù)據(jù)庫的下載與安裝
15.3.1MySQL的下載
15.3.2MySQL的安裝
15.4數(shù)據(jù)庫管理平臺MySQL Workbench的使用
15.4.1創(chuàng)建連接
15.4.2創(chuàng)建數(shù)據(jù)庫實例與表
15.4.3SQL語句執(zhí)行
15.5Java JDBC訪問數(shù)據(jù)庫的步驟
15.5.1在IDEA的項目中添加MySQL驅動程序
15.5.2數(shù)據(jù)庫連接與操作步驟
15.6數(shù)據(jù)庫的增/刪/改操作
15.6.1向數(shù)據(jù)庫增加記錄
15.6.2數(shù)據(jù)庫記錄的修改與刪除
15.7綜合應用舉例
15.7.1數(shù)據(jù)庫設計
15.7.2功能界面設計
15.7.3主要類設計
15.7.4代碼實現(xiàn)
習題
參考文獻