本書從初學(xué)者角度出發(fā),通過(guò)通俗易懂的語(yǔ)言、豐富多彩的實(shí)例,詳細(xì)介紹了使用Java語(yǔ)言進(jìn)行程序開發(fā)需要掌握的知識(shí)。全書分為11章,內(nèi)容包括Java開發(fā)環(huán)境、Java語(yǔ)言基礎(chǔ)、數(shù)組、類和對(duì)象、繼承與多態(tài)、Java核心API、集合、Java基本IO操作、多線程、Java網(wǎng)絡(luò)編程、JDBC連接MySQL數(shù)據(jù)庫(kù)。書中所有知識(shí)都結(jié)合具體實(shí)例進(jìn)行介紹,涉及的程序代碼給出了詳細(xì)注釋,可以使讀者輕松領(lǐng)會(huì)Java程序開發(fā)的精髓,快速提高開發(fā)技能,適合作為高等職業(yè)院校Java程序設(shè)計(jì)課程的教材。
Java是Sun公司推出的跨平臺(tái)、移植性強(qiáng)的面向?qū)ο缶幊陶Z(yǔ)言,就業(yè)方向主要有大數(shù)據(jù)技術(shù)、Android開發(fā)、Java Web開發(fā)等。本書是高等職業(yè)院校Java程序設(shè)計(jì)課程的教材,書中的所有代碼都是基于Eclipse開發(fā)環(huán)境編寫的,JDK使用的是1.8版本,數(shù)據(jù)庫(kù)使用的是MySQL。本書編者結(jié)合多年的教學(xué)經(jīng)驗(yàn),考慮到高職學(xué)生的需求和工作崗位的要求,選用實(shí)用的經(jīng)典案例,力爭(zhēng)讓學(xué)生掌握J(rèn)ava的核心知識(shí)點(diǎn),為后續(xù)課程的學(xué)習(xí)和知識(shí)積累打下堅(jiān)實(shí)的基礎(chǔ)。與當(dāng)前同類教材相比,本書在介紹基礎(chǔ)知識(shí)的基礎(chǔ)上,更側(cè)重于編程案例的實(shí)際應(yīng)用,讓學(xué)生盡快把握和領(lǐng)悟重點(diǎn),并融入實(shí)際的真實(shí)案例應(yīng)用,使學(xué)生具備獨(dú)立思考和動(dòng)手能力。本書共分11章,主要內(nèi)容包括Java開發(fā)環(huán)境、Java語(yǔ)言基礎(chǔ)、數(shù)組、類和對(duì)象、繼承與多態(tài)、Java核心、API、集合、Java基本IO操作、多線程、Java網(wǎng)絡(luò)編程,以及JDBC連接MySQL數(shù)據(jù)庫(kù)。本書第2章、第3章為Java的基礎(chǔ)入門知識(shí),主要面向沒有學(xué)習(xí)過(guò)C語(yǔ)言基礎(chǔ)的學(xué)生進(jìn)行系統(tǒng)的知識(shí)點(diǎn)講解。本書的第4章、第5章是重點(diǎn),也是難點(diǎn),是學(xué)生必須掌握的核心知識(shí)點(diǎn)。在教學(xué)實(shí)踐中,授課教師可以根據(jù)自己的教學(xué)計(jì)劃,適當(dāng)調(diào)整本書的章節(jié)順序進(jìn)行授課,也可以結(jié)合各個(gè)專業(yè)的需求,選擇個(gè)別章節(jié)進(jìn)行重點(diǎn)講解,在重點(diǎn)講解該章節(jié)的過(guò)程中,會(huì)涉及其他章節(jié)的知識(shí)點(diǎn),這樣就可以把相關(guān)章節(jié)的知識(shí)點(diǎn)進(jìn)行融合講解,達(dá)到融會(huì)貫通、以點(diǎn)帶面的良好效果。本書主要特點(diǎn)如下:(1)本書的讀者群非常明確,就是高職高專的學(xué)生,相對(duì)于本科教材,更注重職業(yè)技能的培養(yǎng),通過(guò)實(shí)戰(zhàn)案例,進(jìn)行理論知識(shí)的學(xué)習(xí),幫助學(xué)生理解相關(guān)的知識(shí)點(diǎn)。(2)本書的目的非常明確,就是為后續(xù)課程打下扎實(shí)的基本功,并培養(yǎng)學(xué)生的自主學(xué)習(xí)能力,以達(dá)到滿足工作崗位的要求。(3)本書的定位非常明確,就是Java的入門教材,使讀者能用盡可能短的時(shí)間快速掌握J(rèn)ava的核心技術(shù),并應(yīng)用到開發(fā)實(shí)戰(zhàn)中。(4)由淺入深,循序漸進(jìn)。本書考慮讀者的學(xué)習(xí)需求,首先搭建Java的開發(fā)環(huán)境,讓讀者可以輕松編寫并運(yùn)行個(gè)Java程序,培養(yǎng)讀者的學(xué)習(xí)興趣。(5)實(shí)例經(jīng)典,輕松易學(xué)。本書選用的實(shí)例經(jīng)典實(shí)用,一個(gè)知識(shí)點(diǎn)一個(gè)實(shí)例,可以讓讀者輕松掌握面向?qū)ο蟮姆庋b、繼承、多態(tài)三大特征。(6)考慮到大多數(shù)工作崗位的要求,特別是大數(shù)據(jù)行業(yè)的相關(guān)崗位,本書選用的數(shù)據(jù)庫(kù)是MySQL數(shù)據(jù)庫(kù),并講解Java的核心技術(shù)JDBC。(7)本書每個(gè)案例的選取、演練都有助于讓讀者輕松、快速掌握J(rèn)ava的核心技術(shù),以實(shí)戰(zhàn)開發(fā)代替單調(diào)的講解。本書的配套課件有課程標(biāo)準(zhǔn)、授課計(jì)劃表、過(guò)程化考核方案、教學(xué)視頻等,本書的相關(guān)源碼均已調(diào)試通過(guò),讀者在學(xué)習(xí)過(guò)程中遇到問(wèn)題,可以通過(guò)出版社與編者聯(lián)系。本書由孫昱、胡曉鳳、徐園主編,其中第4、5、6、7、8、9、11章由孫昱編寫, 第1、2、10章由胡曉鳳編寫,第3章由徐園編寫。在本書的編寫過(guò)程中,北京政法職業(yè)學(xué)院對(duì)本教材的編寫和出版給予大力支持;中國(guó)鐵道出版社有限公司的王春霞提出了很多寶貴意見,在此一并誠(chéng)摯感謝。感謝您購(gòu)買本書,希望本書能成為您編程路上的良師益友。孫昱2020年5月于北京
孫昱,畢業(yè)于西南交通大學(xué),碩士研究生,計(jì)算機(jī)應(yīng)用技術(shù)專業(yè),神經(jīng)網(wǎng)絡(luò)方向。2002年至今,北京政法職業(yè)學(xué)院,信息技術(shù)系,講師。參與院級(jí)精品課程兩門,參與多個(gè)院級(jí)科研教改項(xiàng)目,參與多個(gè)校內(nèi)外教學(xué)比賽并獲獎(jiǎng),多次帶學(xué)生參加技能大賽并獲獎(jiǎng)。胡曉鳳,北京政法職業(yè)學(xué)院,信息技術(shù)系,講師,專業(yè)特長(zhǎng)網(wǎng)站設(shè)計(jì)與開發(fā)、網(wǎng)絡(luò)技術(shù)。徐園,北京政法職業(yè)學(xué)院,信息技術(shù)系,講師,專業(yè)特長(zhǎng)java開發(fā)、數(shù)據(jù)庫(kù)開發(fā)。
第1章Java開發(fā)環(huán)境1.1JDK、JRE、JVM的關(guān)系
1.2Java編譯運(yùn)行過(guò)程
1.3JDK安裝
1.4配置環(huán)境變量
1.5通過(guò)命令行編譯運(yùn)行程序
1.6Eclipse小結(jié)習(xí)題
第2章Java語(yǔ)言基礎(chǔ)
2.1變量和常量
2.2基本數(shù)據(jù)類型
2.2.1整型
2.2.2浮點(diǎn)型
2.2.3字符型
2.2.4布爾型2.3運(yùn)算符
2.3.1算術(shù)運(yùn)算符
2.3.2擴(kuò)展賦值運(yùn)算符
2.3.3關(guān)系運(yùn)算符
2.3.4邏輯運(yùn)算符
2.3.5位運(yùn)算符
2.3.6字符串連接符
2.3.7三元運(yùn)算符
2.3.8運(yùn)算符優(yōu)先級(jí)
2.4基本類型間轉(zhuǎn)換
2.5分支結(jié)構(gòu)
2.5.1ifelse雙分支結(jié)構(gòu)
2.5.2ifelse ifelse多分支結(jié)構(gòu)
2.5.3switch多分支結(jié)構(gòu)2.6循環(huán)結(jié)構(gòu)
2.6.1while循環(huán)
2.6.2dowhile循環(huán)
2.6.3for循環(huán)
2.6.4嵌套循環(huán)
2.6.5break語(yǔ)句和continue語(yǔ)句
2.6.6帶標(biāo)簽的break語(yǔ)句和continue語(yǔ)句
2.7遞歸小結(jié)習(xí)題
第3章數(shù)組
3.1創(chuàng)建數(shù)組和初始化
3.1.1數(shù)組聲明
3.1.2初始化數(shù)組
3.2遍歷數(shù)組元素
3.3冒泡排序
3.3.1冒泡排序的基礎(chǔ)算法
3.3.2冒泡排序的優(yōu)化算法
3.4二分法檢索
3.5System.arraycopy()方法實(shí)現(xiàn)數(shù)組復(fù)制
3.6java.util.Arrays類
3.6.1Arrays.copyOf()方法實(shí)現(xiàn)數(shù)組復(fù)制
3.6.2Arrays.sort()方法實(shí)現(xiàn)數(shù)組排序
3.6.3Arrays.binarySearch()方法實(shí)現(xiàn)二分法查找
3.6.4Arrays.fill()方法實(shí)現(xiàn)數(shù)組填充3.7二維數(shù)組
3.7.1二維數(shù)組的靜態(tài)初始化
3.7.2二維數(shù)組的動(dòng)態(tài)初始化ⅢⅣ
3.8java.util.Random類
3.9字符串相等的判斷小結(jié)習(xí)題
第4章類和對(duì)象
4.1面向過(guò)程和面向?qū)ο?br />4.2定義類并創(chuàng)建對(duì)象
4.3方法的重載
4.4構(gòu)造方法
4.5static關(guān)鍵字
4.6參數(shù)傳遞
4.7封裝小結(jié)習(xí)題
第5章繼承與多態(tài)
5.1繼承
5.2super關(guān)鍵字
5.3Object類
5.4訪問(wèn)控制修飾符
5.5多態(tài)
5.6對(duì)象的轉(zhuǎn)型
5.7final關(guān)鍵字
5.8抽象類
5.9接口
5.10內(nèi)部類
5.10.1成員內(nèi)部類
5.10.2匿名內(nèi)部類
5.10.3局部?jī)?nèi)部類小結(jié)習(xí)題
第6章Java核心API
6.1基本數(shù)據(jù)類型的包裝類
6.2字符串常見API
6.2.1String類
6.2.2StringBuffer和StringBuilder類
6.2.3不可變和可變字符序列6.3時(shí)間處理相關(guān)類
6.3.1java.util.Date類和java.text.SimpleDateFormat類
6.3.2java.util.Calendar類
6.4正則表達(dá)式
6.4.1正則表達(dá)式簡(jiǎn)介
6.4.2分組
6.4.3^和$
6.4.4String正則相關(guān)API
6.5java.lang.Math類
6.6java.io.File類小結(jié)習(xí)題
第7章集合7.1泛型
7.2java.util.List接口
7.3java.util.Set接口
7.4java.util.Map接口
7.5集合的遍歷
7.6subList()方法
7.7List轉(zhuǎn)換為數(shù)組
7.8數(shù)組轉(zhuǎn)換為L(zhǎng)ist
7.9java.util.Collections工具類小結(jié)習(xí)題
ⅤⅥ第8章Java基本IO操作8.1InputStream與OutputStream
8.1.1輸入與輸出
8.1.2節(jié)點(diǎn)流與處理流
8.1.3InputStream與OutputStream常用方法8.2文件流
8.2.1創(chuàng)建FOS對(duì)象(重寫模式)
8.2.2創(chuàng)建FOS對(duì)象(追加模式)
8.2.3創(chuàng)建FIS對(duì)象
8.2.4read()和write(int d)方法
8.2.5read(byte[] d)和write(byte[] d)方法8.3緩沖流
8.3.1BOS基本工作原理
8.3.2BOS實(shí)現(xiàn)寫出緩沖
8.3.3BOS的flush方法
8.3.4BIS基本工作原理
8.3.5BIS實(shí)現(xiàn)輸入緩沖8.4對(duì)象流
8.4.1對(duì)象序列化概念
8.4.2使用OOS實(shí)現(xiàn)對(duì)象序列化
8.4.3使用OIS實(shí)現(xiàn)對(duì)象反序列化
8.4.4Serializable接口
8.4.5transient關(guān)鍵字8.5Reader和Writer
8.5.1字符流原理
8.5.2常用方法
8.5.3字符轉(zhuǎn)換流原理
8.5.4指定字符編碼
8.5.5使用OutputStreamWriter()
8.5.6使用InputStreamReader()8.6PrintWriter
8.6.1創(chuàng)建PrintWriter對(duì)象
8.6.2PrintWriter的重載print()和println()方法
8.6.3使用PW輸出字符數(shù)據(jù)8.7BufferedReader
8.7.1構(gòu)建BufferedReader對(duì)象
8.7.2使用BR讀取字符串小結(jié)習(xí)題
第9章多線程9.1進(jìn)程和線程
9.1.1進(jìn)程
9.1.2線程
9.1.3進(jìn)程與線程的區(qū)別
9.1.4線程使用的場(chǎng)合
9.1.5并發(fā)原理
9.1.6線程狀態(tài)9.2創(chuàng)建線程
9.2.1使用Thread創(chuàng)建線并啟動(dòng)線程
9.2.2使用Runnable創(chuàng)建并啟動(dòng)線程
9.2.3使用內(nèi)部類創(chuàng)建線程9.3線程操作API
9.3.1Thread.currentThread()方法
9.3.2獲取線程信息
9.3.3線程優(yōu)先級(jí)
9.3.4守護(hù)線程
9.3.5sleep()方法
9.3.6yield()方法
9.3.7join()方法9.4線程同步
9.4.1synchronized關(guān)鍵字
9.4.2鎖機(jī)制
9.4.3wait和notify
9.4.4線程安全API與非線程安全API
9.4.5使用ExecutorService實(shí)現(xiàn)線程池小結(jié)習(xí)題ⅦⅧ
第10章Java網(wǎng)絡(luò)編程
10.1Socket原理
10.1.1Socket簡(jiǎn)介
10.1.2獲取本地地址和端口號(hào)
10.1.3獲取遠(yuǎn)端地址和端口號(hào)
10.1.4獲取網(wǎng)絡(luò)輸入流和網(wǎng)絡(luò)輸出流
10.1.5close()方法
10.1.6java.net.URL類10.2Socket通信模型
10.2.1Server端ServerSocket監(jiān)聽
10.2.2Client端Socket連接
10.2.3C/S通信模型
10.2.4C/S通信多線程模型10.3UDP通信
10.3.1創(chuàng)建接收包
10.3.2創(chuàng)建發(fā)送包
10.3.3服務(wù)端接收
10.3.4客戶端發(fā)送小結(jié)習(xí)題
第11章JDBC連接MySQL數(shù)據(jù)庫(kù)
11.1MySQL安裝配置
11.2MySQL建庫(kù)建表
11.3Eclipse使用JDBC連接MySQL數(shù)據(jù)庫(kù)
11.3.1Driver接口及驅(qū)動(dòng)類加載
11.3.2Connection接口
11.3.3Statement接口
11.3.4ResultSet接口11.4PreparedStatement
11.4.1PreparedStatement原理
11.4.2通過(guò)PreparedStatement提升性能
11.4.3SQL Injection簡(jiǎn)介
11.4.4通過(guò)PreparedStatement防止SQL Injection11.5連接管理
11.5.1通過(guò)工具類獲取連接
11.5.2通過(guò)屬性文件維護(hù)連接屬性
11.5.3加載屬性文件
11.5.4連接的關(guān)閉11.6連接池技術(shù)
11.6.1連接池簡(jiǎn)介
11.6.2使用Apache DBCP連接池
11.6.3通過(guò)DataSource獲取連接
11.6.4連接池參數(shù)11.7事務(wù)
11.7.1事務(wù)簡(jiǎn)介
11.7.2JDBC事務(wù)API
11.7.3JDBC標(biāo)準(zhǔn)事務(wù)編程模式11.8批量更新