本書共分三個(gè)部分:第一部分為程序設(shè)計(jì)基礎(chǔ)知識介紹,內(nèi)容涉及數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、程序基本控制結(jié)構(gòu)、函數(shù)及其應(yīng)用、數(shù)組及其應(yīng)用、指針及其應(yīng)用、結(jié)構(gòu)體及其應(yīng)用、文件與數(shù)據(jù)存儲;第二部分為AI輔助編程入門實(shí)戰(zhàn);第三部分為AI輔助編程高階實(shí)戰(zhàn),其中包括各類大賽競賽題自動解答。本書是一本以Java語言為基礎(chǔ)介紹AI賦能編程的書籍,這本書既可以作為AI編程的入門書,也可以作為機(jī)器學(xué)習(xí)研究人員的參考工具,能夠幫助讀者從基礎(chǔ)到更高水平地掌握AI賦能編程的方法,深入理解AI的原理。本書的特色在于將Java編程語言和AI賦能編程原理相結(jié)合,通過Java語言來實(shí)現(xiàn)AI賦能編程應(yīng)用,幫助讀者把AI賦能編程從理論落地到應(yīng)用實(shí)踐中。本書面向在校學(xué)生、機(jī)器學(xué)習(xí)愛好者、人工智能研究者、AI開發(fā)者和AI程序員,是他們深入理解AI賦能編程的有力工具。
曾錦山現(xiàn)為江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院教授、博士生導(dǎo)師,現(xiàn)擔(dān)任計(jì)算機(jī)信息工程學(xué)院副院長、高性能計(jì)算江西省重點(diǎn)實(shí)驗(yàn)室主任、江西省大數(shù)據(jù)專家、江西省首批科普大使、江西師范大學(xué)語言空間信息科學(xué)研究中心副主任等。2015年6月博士畢業(yè)于西安交通大學(xué),師從徐宗本院士。曾先后在中國科學(xué)院電子學(xué)研究所、美國加州大學(xué)洛杉磯分校、香港科技大學(xué)和香港城市大學(xué)從事博士后或訪問合作研究。2015年7月進(jìn)入江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院工作。2017年入選江西師范大學(xué)首批高端人才計(jì)劃,2019年入選江西省"雙千計(jì)劃”(首批培養(yǎng)類),連續(xù)主持國家自然科學(xué)基金3項(xiàng)(面上2項(xiàng),青年1項(xiàng))和江西省自然科學(xué)基金杰出青年基金1項(xiàng),參與國家自然科學(xué)基金多項(xiàng)。在人工智能相關(guān)領(lǐng)域主流期刊和會議上發(fā)表高水平論文60余篇,其中JMLR和IEEE匯刊系列論文20篇,CCF A類論文15篇。兩篇論文獲得"世界華人數(shù)學(xué)家聯(lián)盟最佳論文獎(jiǎng)”(2018和2020年),單篇論文連續(xù)兩年入選"中國數(shù)學(xué)領(lǐng)域熱點(diǎn)論文榜單前十”(排名第5(2022年)和第4(2023年)),單篇論文最高引用愈1200次(谷歌學(xué)術(shù));授權(quán)發(fā)明專利13項(xiàng),獲批軟件著作權(quán)9項(xiàng)。指導(dǎo)學(xué)生獲得"挑戰(zhàn)杯”紅色專項(xiàng)賽道國家特等獎(jiǎng)等國家級獎(jiǎng)勵(lì)10余項(xiàng),相關(guān)研究成果得到《人民日報(bào)》、《中國青年網(wǎng)》和《大江網(wǎng)》等多家主流媒體的廣泛報(bào)道。兩度受邀在世界華人數(shù)學(xué)家大會上作四十五分鐘學(xué)術(shù)報(bào)告。受邀擔(dān)任國際高水平學(xué)術(shù)會議副主席或論壇主席近10次。
第1章 Java簡介
1.1 什么是Java語言
1.1.1 Java語言特點(diǎn)
1.1.2 Java的三層結(jié)構(gòu)
1.1.3 Java虛擬機(jī)
1.1.4 垃圾回收
1.1.5 代碼安全
1.2 一個(gè)基本的Java程序
1.2.1 Java環(huán)境的配置
1.2.2 Java應(yīng)用程序
1.3 程序的編譯與運(yùn)行
1.3.1 編譯
1.3.2 運(yùn)行
1.4 常見錯(cuò)誤
1.4.1 編譯時(shí)錯(cuò)誤
1.4.2 運(yùn)行時(shí)錯(cuò)誤
1.5 使用Java核心API文檔
本章小結(jié)
習(xí)題1
拓展閱讀1
拓展閱讀2
拓展閱讀3
第2章 標(biāo)識符與數(shù)據(jù)類型
2.1 Java的基本語法單位
2.1.1 空白注釋及語句
2.1.2 關(guān)鍵字
2.1.3 標(biāo)識符
2.2 基本數(shù)據(jù)類型
2.2.1 基本數(shù)據(jù)類型簡介
2.2.2 類型轉(zhuǎn)換
2.2.3 字面量與常量
2.2.4 變量、聲明和賦值
2.3 復(fù)合數(shù)據(jù)類型
本章小結(jié)
習(xí)題2
拓展閱讀
第3章 表達(dá)式和流程控制語句
3.1 表達(dá)式
3.1.1 操作數(shù)
3.1.2 運(yùn)算符
3.1.3 表達(dá)式的提升和轉(zhuǎn)換
3.2 流程控制語句
3.2.1 表達(dá)式語句
3.2.2 塊
3.2.3 選擇結(jié)構(gòu)
3.2.4 循環(huán)語句
3.2.5 continue和break語句
3.3 簡單的輸入/輸出
本章小結(jié)
習(xí)題3
拓展閱讀
第4章 數(shù)組和向量
4.1 數(shù)組
4.1.1 創(chuàng)建數(shù)組
4.1.2 訪問數(shù)組
4.1.3 二維數(shù)組
4.1.4 復(fù)制數(shù)組
4.2 Vector類(向量)
4.2.1 概述
4.2.2 Vector類的構(gòu)造方法
4.2.3 Vector類對象的操作
本章小結(jié)
習(xí)題4
拓展閱讀
第5章 字符串
5.1 初識字符串
5.1.1 字符串的特性
5.1.2 字符串的創(chuàng)建
5.2 字符串的操作
5.2.1 字符串的基本操作
5.2.2 StringBuffer和StringBuilder類
5.2.3 字符串的格式化
5.2.4 字符串方法
5.3 正則表達(dá)式
5.3.1 正則表達(dá)式的基本概念
5.3.2 使用Pattern和Matcher類進(jìn)行正則匹配
本章小結(jié)
習(xí)題5
拓展閱讀1
拓展閱讀2
第6章 對象和類
6.1 對象和類的初步介紹
6.1.1 面向?qū)ο蠹夹g(shù)
6.1.2 對象和類的定義
6.2 類的基本結(jié)構(gòu)
6.2.1 聲明
6.2.2 成員變量和成員方法
6.2.3 構(gòu)造方法
6.3 對象的創(chuàng)建和使用
6.3.1 創(chuàng)建對象
6.3.2 訪問成員變量和調(diào)用成員方法
6.3.3 對象引用
6.4 封裝
6.4.1 訪問修飾符
6.4.2 封裝的優(yōu)勢
6.4.3 Getter和Setter方法
6.5 繼承
6.5.1 基類與派生類
6.5.2 extends關(guān)鍵字
6.5.3 super關(guān)鍵字
6.6 多態(tài)
6.6.1 方法重載和方法重寫
6.6.2 抽象類和接口
6.7 靜態(tài)成員
6.7.1 類變量
6.7.2 類方法
6.7.3 靜態(tài)塊
6.8 高級主題
6.8.1 枚舉
6.8.2 內(nèi)部類
6.8.3 反射
本章小結(jié)
習(xí)題6
拓展閱讀1
拓展閱讀2
第7章 Java異常處理
7.1 異常
7.1.1 引出異常
7.1.2 異常的概念
7.1.3 Java異常分類
7.2 Java異常處理
7.2.1 try-catch塊
7.2.2 公共異常
7.3 拋出異常
7.4 自定義異常
本章小結(jié)
習(xí)題七
拓展閱讀
第8章 Java語言的高級特性
8.1 泛型
8.1.1 泛型數(shù)據(jù)類型
8.1.2 泛型類
8.1.3 泛型接口
8.1.4 泛型方法
8.2 迭代器
8.2.1 迭代器的基本概念
8.2.2 接口Iterator
8.2.3 接口Iterable
8.2.4 Iterable和for-each循環(huán)
8.2.5 使用迭代器示例
8.3 克隆
8.3.1 克隆的實(shí)現(xiàn)方式
8.3.2 淺克隆
8.3.3 深克隆
本章小結(jié)
習(xí)題8
拓展閱讀
第9章 Java的圖形用戶界面設(shè)計(jì)
9.1 AWT和Swing
9.2 容器
9.2.1 頂層容器
9.2.2 內(nèi)容窗格
9.2.3 面板
9.3 布局
9.3.1 FlowLayout布局管理器
9.3.2 BorderLayout布局管理器
9.3.3 GridLayout布局管理器
9.4 事件處理
9.4.1 事件處理模型
9.4.2 事件的種類
9.4.3 多監(jiān)聽程序
9.4.4 事件適配器
本章小結(jié)
習(xí)題9
拓展閱讀
第10章 Swing組件
10.1 窗口
10.2 按鈕
10.2.1 普通按鈕
10.2.2 切換按鈕
10.2.3 單選按鈕
10.2.4 復(fù)選按鈕
10.3 標(biāo)簽
10.4 組合框
10.5 列表
10.6 文本組件
10.6.1 文本域
10.6.2 文本區(qū)
10.6.3 文本編輯器
10.6.4 密碼框
10.7 菜單組件
10.7.1 菜單欄
10.7.2 菜單
10.7.3 菜單項(xiàng)
10.8 對話框
10.8.1 對話框概述
10.8.2 標(biāo)準(zhǔn)對話框
10.8.3 文件對話框
10.9 定制組件樣式
10.9.1 顏色
10.9.2 字體
10.9.3 繪圖
本章小結(jié)
習(xí)題10
拓展閱讀
第11章 數(shù)據(jù)流的輸入與輸出
11.1 數(shù)據(jù)流的基本概念
11.1.1 I/O流原理與流的分類
11.1.2 輸入數(shù)據(jù)流
11.1.3 輸出數(shù)據(jù)流
11.2 二進(jìn)制I/O流和文本I/O流
11.2.1 二進(jìn)制I/O流
11.2.2 文本I/O流
11.3 節(jié)點(diǎn)流和處理流
11.4 序列化和反序列化
11.5 文件的處理
11.5.1 File類
11.5.2 隨機(jī)訪問文件
本章小結(jié)
習(xí)題11
拓展閱讀
第12章 線程
12.1 線程和多線程
12.1.1 線程的概念
12.1.2 線程的特點(diǎn)及結(jié)構(gòu)
12.2 線程的狀態(tài)
12.3 創(chuàng)建線程
12.3.1 通過繼承Thread類創(chuàng)建線程
12.3.2 通過實(shí)現(xiàn)Runnable接口創(chuàng)建線程
12.3.3 通過Callable和Future創(chuàng)建線程
12.3.4 不同創(chuàng)建線程的方法的區(qū)別
12.4 線程的優(yōu)先級
12.4.1 線程的不同優(yōu)先級
12.4.2 線程的調(diào)度方法
12.5 線程的基本控制
12.5.1 暫停與喚醒線程
12.5.2 結(jié)束線程
12.5.3 檢查線程
12.6 線程的同步問題
12.6.1 線程間的資源互斥
12.6.2 線程同步方法
12.7 死鎖
12.8 線程的交互
12.9 守護(hù)線程
本章小結(jié)
習(xí)題12
拓展閱讀1
拓展閱讀2
第13章 Java的網(wǎng)絡(luò)功能
13.1 網(wǎng)絡(luò)編程入門
13.1.1 網(wǎng)絡(luò)編程的重要性
13.1.2 基本網(wǎng)絡(luò)概念
13.1.3 Java的網(wǎng)絡(luò)API
13.2 TCP/IP協(xié)議
13.2.1 概述
13.2.2 傳輸層與Socket
13.2.3 應(yīng)用層與HTTP
13.3 Socket編程
13.3.1 TCP和UDP協(xié)議
13.3.2 實(shí)現(xiàn)過程與建立連接
13.3.3 數(shù)據(jù)傳輸和處理
13.3.4 多線程與網(wǎng)絡(luò)聊天
13.4 Web服務(wù)
13.4.1 Web服務(wù)概述
13.4.2 Java對Web服務(wù)的支持
13.4.3 創(chuàng)建和測試Web服務(wù)
本章小結(jié)
習(xí)題13
第14章 算法競賽中的Java編程
14.1 算法競賽簡介
14.2 算法基礎(chǔ)
14.2.1 算法基本概念
14.2.2 算法分析
14.2.3 高級排序算法
14.2.4 搜索算法
14.3 算法設(shè)計(jì)方法
14.3.1 枚舉法
14.3.2 貪心法
14.3.3 分治法
14.3.4 動態(tài)規(guī)劃法
本章小結(jié)
習(xí)題14
第15章 AI鏈無代碼生成平臺Sapper
15.1 SPL語言
15.1.1 SPL語言特性
15.1.2 SPL構(gòu)成
15.2 Agent開發(fā)與使用
15.2.1 Agent 開發(fā)
15.2.2 Agent使用
15.3 Sapper高級特性
15.3.1 智能表單
15.3.2 RAG
15.3.3 Debug
本章小節(jié)
習(xí)題15
拓展閱讀1
拓展閱讀2
參考文獻(xiàn)