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