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