Java語(yǔ)言是一種純面向?qū)ο蟮耐ㄓ贸绦蛟O(shè)計(jì)語(yǔ)言,具有跨平臺(tái)性、可移植性、安全性等優(yōu)點(diǎn),該語(yǔ)言自從1995年誕生以來(lái),已發(fā)布了近20個(gè)版本,語(yǔ)言的類(lèi)庫(kù)不斷豐富,具有非常強(qiáng)勁的活力。
Java語(yǔ)言基本涵蓋了通用程序設(shè)計(jì)所有的技術(shù),內(nèi)容繁多,如GUI與事件驅(qū)動(dòng)編程、多線程并發(fā)程序設(shè)計(jì)、異常處理、I/O文件系統(tǒng)、數(shù)據(jù)庫(kù)編程、網(wǎng)絡(luò)編程等。為了使本書(shū)適合初學(xué)者學(xué)習(xí),對(duì)各章節(jié)的內(nèi)容進(jìn)行了取舍,在介紹語(yǔ)言的組成與語(yǔ)法的同時(shí),通過(guò)示例展示其應(yīng)用與基本算法,而不是寫(xiě)成Java參考手冊(cè)。本書(shū)針對(duì)Java的基本程序設(shè)計(jì)、面向?qū)ο蟮脑O(shè)計(jì)、GUI編程、多線程、數(shù)據(jù)庫(kù)編程等重要內(nèi)容,精心挑選典型的案例,在案例程序中展示相關(guān)內(nèi)容的使用方法,使讀者在例子程序的編寫(xiě)、運(yùn)行測(cè)試、錯(cuò)誤修復(fù)中進(jìn)行學(xué)習(xí)。
對(duì)于程序開(kāi)發(fā)人員,熟練地掌握集成開(kāi)發(fā)環(huán)境可以大幅提高程序的設(shè)計(jì)效率。本書(shū)采用IDEA集成開(kāi)發(fā)平臺(tái),該平臺(tái)也是當(dāng)前Java程序開(kāi)發(fā)人員廣泛使用的平臺(tái)。本書(shū)介紹了IDEA的下載與安裝、Java開(kāi)發(fā)包的配置與使用、數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的下載與配置等內(nèi)容。
本書(shū)共有15章。第1章介紹了Java語(yǔ)言的開(kāi)發(fā)工具包、運(yùn)行機(jī)制,給出了IntelliJ IDEA集成開(kāi)發(fā)環(huán)境的下載與安裝方法,通過(guò)第一個(gè)Java程序的創(chuàng)建、編輯與運(yùn)行,介紹了IDEA的使用。第2章與第3章在介紹了Java程序的基本組成要素之后,給出了其主要語(yǔ)句,包括語(yǔ)句塊、選擇語(yǔ)句與循環(huán)語(yǔ)句,并通過(guò)示例展示它們的使用。第4章在簡(jiǎn)單介紹面向?qū)ο缶幊痰幕靖拍詈,詳?xì)講解了Java語(yǔ)言類(lèi)的定義、對(duì)象創(chuàng)建、方法重載與訪問(wèn)修飾符等內(nèi)容。第5章與第6章講解了數(shù)組的定義,以及數(shù)組作為最常用的數(shù)據(jù)結(jié)構(gòu)在數(shù)據(jù)存放與算法設(shè)計(jì)中的典型應(yīng)用,并介紹正則表達(dá)式及編程中常用的Java類(lèi)。第7章與第8章講解了面向?qū)ο缶幊讨械睦^承與多態(tài)、抽象類(lèi)、接口與泛型類(lèi),這部分是對(duì)第4章內(nèi)容的延伸。第9章介紹了異常類(lèi)、異常對(duì)象與異常處理,以及Java異常處理機(jī)制是如何提高程序的穩(wěn)健性的。第10章介紹了Java的輸入/輸出操作,講解了字符流與字節(jié)流的應(yīng)用。第11章講解了多線程技術(shù),通過(guò)許多典型的案例使讀者深刻理解多線程編程。第12章與第13章講解了GUI設(shè)計(jì)與基于事件驅(qū)動(dòng)的編程,介紹了常用的GUI組件、容器、事件監(jiān)聽(tīng)與處理方法。第14章講解了集合框架與常用的工具類(lèi),通過(guò)簡(jiǎn)單示例展示這些工具類(lèi)的適用場(chǎng)景。第15章首先通過(guò)簡(jiǎn)單的示例介紹了數(shù)據(jù)庫(kù)的表與SQL語(yǔ)句的使用,使沒(méi)有學(xué)習(xí)過(guò)數(shù)據(jù)庫(kù)的讀者也能學(xué)習(xí)Java數(shù)據(jù)庫(kù)編程; 然后通過(guò)詳細(xì)的步驟介紹了MySQL數(shù)據(jù)庫(kù)的下載與安裝方法,并通過(guò)圖示說(shuō)明了數(shù)據(jù)庫(kù)管理平臺(tái)MySQL Workbench的簡(jiǎn)單應(yīng)用; 最后通過(guò)示例展示了Java數(shù)據(jù)庫(kù)編程技術(shù)。
在學(xué)習(xí)Java語(yǔ)言之前,如果讀者有其他編程語(yǔ)言的基礎(chǔ),可以快速閱讀第2章、第3章與第5章的內(nèi)容,重點(diǎn)學(xué)習(xí)面向?qū)ο缶幊痰南嚓P(guān)技術(shù)。
本書(shū)第1章由趙欣編寫(xiě),第2、3、10、11、15章由趙逢禹編寫(xiě),第4、7、9章由朱麗娟編寫(xiě),第5、12、13章由李銳編寫(xiě),第6、8、14章由齊福利編寫(xiě)。全書(shū)由趙逢禹和朱麗娟擔(dān)任主編,完成全書(shū)的修改及統(tǒng)稿工作。
由于編者水平有限,書(shū)中不當(dāng)之處在所難免,歡迎廣大同行和讀者批評(píng)指正。
編者
2023年6月
第1章Java語(yǔ)言與集成開(kāi)發(fā)環(huán)境
1.1Java語(yǔ)言
1.1.1什么是Java
1.1.2Java語(yǔ)言的特點(diǎn)
1.2Java開(kāi)發(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開(kāi)發(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類(lèi)
1.5.5編寫(xiě)Java程序
1.5.6執(zhí)行Java程序
1.6Java程序風(fēng)格
習(xí)題
第2章Java語(yǔ)言基礎(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ù)類(lèi)型
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類(lèi)型強(qiáng)制轉(zhuǎn)換
2.6.1自動(dòng)類(lèi)型轉(zhuǎn)換
2.6.2強(qiáng)制類(lèi)型轉(zhuǎn)換
習(xí)題
第3 章控制語(yǔ)句與算法
3.1Java程序的執(zhí)行流程
3.1.1算法的執(zhí)行
3.1.2語(yǔ)句塊與塊作用域
3.2選擇語(yǔ)句
3.2.1if語(yǔ)句
3.2.2switch語(yǔ)句
3.3循環(huán)語(yǔ)句
3.3.1while語(yǔ)句
3.3.2dowhile語(yǔ)句
3.3.3for語(yǔ)句
3.4跳轉(zhuǎn)語(yǔ)句
3.4.1break語(yǔ)句
3.4.2continue語(yǔ)句
3.5控制語(yǔ)句編程舉例
習(xí)題
第4章對(duì)象和類(lèi)
4.1面向?qū)ο缶幊痰幕靖拍?/p>
4.2類(lèi)和對(duì)象
4.2.1類(lèi)的構(gòu)成
4.2.2類(lèi)的使用
4.3this的使用
4.4方法重載
4.4.1成員方法的重載
4.4.2構(gòu)造方法的重載
4.5類(lèi)的設(shè)計(jì)和使用舉例
4.6訪問(wèn)修飾符
4.6.1公共訪問(wèn)修飾符public
4.6.2受保護(hù)訪問(wèn)修飾符protected
4.6.3默認(rèn)訪問(wèn)修飾符
4.6.4私有訪問(wèn)修飾符private
4.6.5可見(jiàn)性分析舉例
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訪問(wèn)數(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類(lèi)與應(yīng)用
5.5二維數(shù)組
5.5.1二維數(shù)組的聲明、創(chuàng)建和使用
5.5.2二維數(shù)組的應(yīng)用案例
5.6多維數(shù)組
習(xí)題
第6章常用類(lèi)與正則表達(dá)式
6.1Java常用類(lèi)
6.1.1Object類(lèi)
6.1.2System類(lèi)
6.1.3Math類(lèi)
6.1.4Random類(lèi)
6.1.5包裝類(lèi)
6.1.6日期類(lèi)和時(shí)間類(lèi)
6.1.7輸入/輸出類(lèi)
6.2字符串類(lèi)
6.2.1String類(lèi)
6.2.2StringBuffer類(lèi)
6.3正則表達(dá)式
6.3.1正則表達(dá)式簡(jiǎn)介
6.3.2正則表達(dá)式元字符
6.3.3正則表達(dá)式語(yǔ)法
6.3.4正則表達(dá)式限定符
6.3.5正則表達(dá)式使用
習(xí)題
第7章繼承和多態(tài)
7.1繼承
7.1.1繼承的定義
7.1.2成員變量的隱藏與成員方法的覆蓋
7.1.3子類(lèi)中的構(gòu)造方法
7.1.4繼承的訪問(wèn)可見(jiàn)性規(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章抽象類(lèi)、接口與泛型類(lèi)
8.1抽象類(lèi)
8.2接口
8.2.1接口的定義
8.2.2類(lèi)實(shí)現(xiàn)接口
8.2.3接口與抽象類(lèi)的區(qū)別
8.3內(nèi)部類(lèi)與匿名類(lèi)
8.3.1內(nèi)部類(lèi)
8.3.2匿名類(lèi)
8.4泛型
8.4.1泛型類(lèi)聲明
8.4.2泛型接口
習(xí)題
第9章異常處理
9.1異常與異常類(lèi)
9.1.1異常的概念
9.1.2Java異常類(lèi)
9.2異常處理機(jī)制
9.2.1trycatchfinally結(jié)構(gòu)
9.2.2throw語(yǔ)句拋出異常
9.2.3throws子句拋出異常
9.3自定義異常類(lèi)
9.4異常處理的優(yōu)點(diǎn)
習(xí)題
第10章I/O與文件操作
10.1流的基本概念
10.2字節(jié)流與相關(guān)類(lèi)
10.2.1字節(jié)流與字節(jié)流抽象類(lèi)
10.2.2字節(jié)流常用子類(lèi)
10.2.3DataInputStream與DataOutputStream
10.3字符流與相關(guān)類(lèi)
10.3.1FileWriter類(lèi)
10.3.2FileReader類(lèi)
10.3.3PrintWriter輸出字符到文件
10.3.4Scanner讀取文本文件
10.4對(duì)象輸入/輸出與Serializable接口
10.5文件系統(tǒng)應(yīng)用舉例
習(xí)題
第11章多線程
11.1線程與線程類(lèi)
11.1.1線程類(lèi)的定義與多線程運(yùn)行
11.1.2線程的狀態(tài)與狀態(tài)轉(zhuǎn)換
11.2使用Runnable接口創(chuàng)建線程類(lèi)
11.3Thread類(lèi)與相關(guān)操作
11.3.1Thread類(lèi)
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庫(kù)
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常見(jiàn)GUI相關(guān)輔助類(lèi)
12.5.1Color類(lèi)
12.5.2Font類(lèi)
習(xí)題
第13章事件驅(qū)動(dòng)編程
13.1GUI事件處理流程
13.2事件源
13.3事件類(lèi)
13.4事件處理
13.4.1監(jiān)聽(tīng)器對(duì)象
13.4.2監(jiān)聽(tīng)器對(duì)象的注冊(cè)
13.4.3GUI事件處理機(jī)制
13.4.4事件處理案例
13.5其他常見(jiàn)事件處理案例
13.5.1GUI中的菜單
13.5.2鼠標(biāo)相關(guān)的交互操作
13.6監(jiān)聽(tīng)器實(shí)現(xiàn)類(lèi)的代碼簡(jiǎn)化
13.6.1監(jiān)聽(tīng)器的內(nèi)部類(lèi)實(shí)現(xiàn)
13.6.2監(jiān)聽(tīng)器的匿名類(lèi)
13.7JOptionPane對(duì)話框
13.7.1Message Dialog消息對(duì)話框
13.7.2Confirmation Dialog確認(rèn)對(duì)話框
13.7.3Input Dialog輸入對(duì)話框
習(xí)題
第14章集合類(lèi)
14.1集合與Collection框架
14.2Collection接口
14.2.1Set接口與實(shí)現(xiàn)類(lèi)
14.2.2List接口與實(shí)現(xiàn)類(lèi)
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ù)庫(kù)編程
15.1關(guān)系數(shù)據(jù)庫(kù)系統(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ù)庫(kù)的下載與安裝
15.3.1MySQL的下載
15.3.2MySQL的安裝
15.4數(shù)據(jù)庫(kù)管理平臺(tái)MySQL Workbench的使用
15.4.1創(chuàng)建連接
15.4.2創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例與表
15.4.3SQL語(yǔ)句執(zhí)行
15.5Java JDBC訪問(wèn)數(shù)據(jù)庫(kù)的步驟
15.5.1在IDEA的項(xiàng)目中添加MySQL驅(qū)動(dòng)程序
15.5.2數(shù)據(jù)庫(kù)連接與操作步驟
15.6數(shù)據(jù)庫(kù)的增/刪/改操作
15.6.1向數(shù)據(jù)庫(kù)增加記錄
15.6.2數(shù)據(jù)庫(kù)記錄的修改與刪除
15.7綜合應(yīng)用舉例
15.7.1數(shù)據(jù)庫(kù)設(shè)計(jì)
15.7.2功能界面設(shè)計(jì)
15.7.3主要類(lèi)設(shè)計(jì)
15.7.4代碼實(shí)現(xiàn)
習(xí)題
參考文獻(xiàn)