本書(shū)是一本系統(tǒng)全面、實(shí)用性強(qiáng)的Java編程入門(mén)教材,旨在幫助初學(xué)者從零開(kāi)始掌握J(rèn)ava語(yǔ)言的核心知識(shí)與編程技能。本書(shū)首先介紹了Java的歷史、特點(diǎn)及開(kāi)發(fā)環(huán)境的搭建,包括JDK的安裝與配置、Eclipse等工具的使用;隨后詳細(xì)講解Java的基本語(yǔ)法、變量與常量、運(yùn)算符與控制結(jié)構(gòu),幫助讀者快速入門(mén)。在面向?qū)ο缶幊滩糠,?shū)中深入探討了類(lèi)與對(duì)象、封裝、繼承、多態(tài)、抽象類(lèi)、接口以及內(nèi)部類(lèi)等核心概念,并結(jié)合常用類(lèi)的實(shí)際應(yīng)用,強(qiáng)化理論與實(shí)踐的結(jié)合。本書(shū)還涵蓋了Java的高級(jí)特性,包括數(shù)組與集合框架、異常處理機(jī)制、多線程編程、輸入輸出與文件管理、對(duì)象序列化等內(nèi)容。最后,書(shū)中通過(guò)實(shí)際案例介紹了數(shù)據(jù)庫(kù)編程(JDBC)、圖形用戶(hù)界面(Swing)設(shè)計(jì)以及網(wǎng)絡(luò)編程(TCP/UDP通信),使讀者能夠?qū)⑺鶎W(xué)知識(shí)應(yīng)用于實(shí)際開(kāi)發(fā)中。全書(shū)配有大量代碼示例、圖表和流程圖,每章還附有習(xí)題,幫助讀者鞏固知識(shí)并提升編程能力。
張亞楠,博士,副教授,哈爾濱理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,碩士生導(dǎo)師。主要研究方向?yàn)閺?qiáng)化學(xué)習(xí)、自編程、參數(shù)自更新,主持工業(yè)和信息化部重點(diǎn)任務(wù)"2023 年工業(yè)機(jī)器人實(shí)時(shí)操作系統(tǒng)及集成開(kāi)發(fā)環(huán)境項(xiàng)目(招標(biāo)編號(hào):2340STCZB1929)”子任務(wù)"工藝模型參數(shù)自學(xué)習(xí)及模型自更新方法研究”;主編和參與編寫(xiě)《ROS2源代碼分析與工程應(yīng)用》(清華大學(xué)出版社)等教材。
第1章 Java簡(jiǎn)介 1
1.1 Java的歷史與特點(diǎn) 1
1.1.1 Java的歷史 1
1.1.2 Java的特點(diǎn) 1
1.2 Java平臺(tái) 3
1.2.1 Java平臺(tái)的組成 3
1.2.2 Java平臺(tái)的標(biāo)準(zhǔn)化規(guī)范 9
1.3 Java開(kāi)發(fā)工具 15
1.3.1 集成開(kāi)發(fā)環(huán)境 15
1.3.2 構(gòu)建工具 16
1.3.3 代碼版本控制工具 18
1.3.4 測(cè)試工具 18
1.4 JDK的安裝與環(huán)境變量的配置 20
1.4.1 下載和安裝JDK 20
1.4.2 配置環(huán)境變量 21
1.5 Eclipse開(kāi)發(fā)工具 23
1.5.1 Eclipse的安裝與啟動(dòng) 23
1.5.2 Eclipse開(kāi)發(fā)程序示例 25
1.6 習(xí)題 27
第2章 Java的編程基礎(chǔ) 28
2.1 Java的基本語(yǔ)法 28
2.1.1 Java的基本語(yǔ)法格式 28
2.1.2 Java中的注釋 29
2.1.3 Java中的標(biāo)識(shí)符 30
2.1.4 Java中的關(guān)鍵字 30
2.1.5 Java中的轉(zhuǎn)義字符 32
2.2 Java的變量與常量 34
2.2.1 Java變量的定義 34
2.2.2 Java變量的數(shù)據(jù)類(lèi)型 35
2.2.3 Java變量的類(lèi)型轉(zhuǎn)換 37
2.2.4 Java變量的類(lèi)型 38
2.2.5 Java常量 40
2.2.6 引用數(shù)據(jù)類(lèi)型 42
2.3 運(yùn)算符與表達(dá)式 42
2.3.1 運(yùn)算符 42
2.3.2 表達(dá)式 45
2.3.3 運(yùn)算符的注意事項(xiàng)與優(yōu)化 46
2.4 控制結(jié)構(gòu) 48
2.4.1 條件控制結(jié)構(gòu) 48
2.4.2 循環(huán)控制結(jié)構(gòu) 54
2.4.3 跳轉(zhuǎn)控制結(jié)構(gòu) 59
2.4.4 高級(jí)控制結(jié)構(gòu) 61
2.5 習(xí)題 62
第3章 面向?qū)ο缶幊?63
3.1 類(lèi)與對(duì)象 63
3.1.1 類(lèi)與對(duì)象的概念 63
3.1.2 定義類(lèi)與創(chuàng)建對(duì)象 64
3.2 構(gòu)造函數(shù) 67
3.2.1 構(gòu)造函數(shù)的定義 67
3.2.2 構(gòu)造函數(shù)的類(lèi)型 69
3.2.3 構(gòu)造函數(shù)的重載 71
3.2.4 this關(guān)鍵字 72
3.2.5 構(gòu)造函數(shù)的最佳實(shí)踐 73
3.2.6 實(shí)例初始化塊 74
3.2.7 對(duì)象的構(gòu)造過(guò)程 75
3.3 封裝、繼承與多態(tài) 76
3.3.1 封裝 76
3.3.2 繼承 84
3.3.3 多態(tài) 92
3.4 抽象類(lèi) 95
3.4.1 抽象類(lèi)的定義 95
3.4.2 抽象類(lèi)的特性 96
3.4.3 抽象類(lèi)的實(shí)現(xiàn) 96
3.4.4 抽象類(lèi)的實(shí)例 98
3.5 接口 100
3.5.1 接口的基本概念 100
3.5.2 接口的實(shí)現(xiàn)與使用 100
3.5.3 接口的特性 101
3.5.4 接口與抽象類(lèi)的區(qū)別 103
3.5.5 Compareable和Coloneable接口 105
3.6 內(nèi)部類(lèi) 109
3.6.1 內(nèi)部類(lèi)的定義 109
3.6.2 內(nèi)部類(lèi)的類(lèi)型 110
3.6.3 內(nèi)部類(lèi)的生命周期和作用域 113
3.6.4 選擇和使用內(nèi)部類(lèi) 115
3.7 Java中的常用類(lèi) 116
3.7.1 Object類(lèi) 116
3.7.2 String類(lèi)與StringBuilder類(lèi) 119
3.7.3 Scanner類(lèi) 122
3.7.4 模式匹配 125
3.7.5 Date類(lèi) 129
3.7.6 Calendar類(lèi) 131
3.7.7 Math類(lèi) 134
3.8 習(xí)題 137
第4章 數(shù)組與集合框架 141
4.1 數(shù)組 141
4.1.1 數(shù)組的基本概念 141
4.1.2 數(shù)組的創(chuàng)建與初始化 141
4.1.3 數(shù)組的基本操作 142
4.1.4 多維數(shù)組 150
4.2 集合框架 153
4.2.1 集合框架的主要接口與實(shí)現(xiàn)類(lèi) 153
4.2.2 泛型與集合框架 154
4.3 List接口及其實(shí)現(xiàn) 155
4.3.1 List 接口的定義 155
4.3.2 List 接口的主要方法 156
4.3.3 List 接口的實(shí)現(xiàn)類(lèi) 157
4.4 Set接口及其實(shí)現(xiàn) 163
4.4.1 Set 接口的定義 163
4.4.2 HashSet 類(lèi)的實(shí)現(xiàn) 164
4.4.3 TreeSet 類(lèi)的實(shí)現(xiàn) 166
4.4.4 HashSet 類(lèi)和 TreeSet 類(lèi)的對(duì)比 167
4.5 Map接口及其實(shí)現(xiàn) 168
4.5.1 Map 接口的定義 168
4.5.2 HashMap類(lèi) 169
4.5.3 TreeMap類(lèi) 171
4.5.4 HashMap 類(lèi)和 TreeMap 類(lèi)的對(duì)比 173
4.6 習(xí)題 174
第5章 異常處理 175
5.1 異常類(lèi)與異常對(duì)象 175
5.1.1 異常類(lèi) 175
5.1.2 異常對(duì)象 178
5.1.3 throw關(guān)鍵字和throws關(guān)鍵字 179
5.2 try-catch-finally 語(yǔ)句 181
5.2.1 語(yǔ)法結(jié)構(gòu) 181
5.2.2 異常的傳播 184
5.2.3 try-catch-finally 語(yǔ)句使用的注意事項(xiàng) 185
5.3 自定義異常 186
5.4 習(xí)題 188
第6章 多線程編程 189
6.1 線程 189
6.1.1 線程概述 189
6.1.2 創(chuàng)建線程 194
6.1.3 線程的生命周期 199
6.1.4 線程的應(yīng)用場(chǎng)景 208
6.2 線程同步與通信 209
6.2.1 線程同步 209
6.2.2 線程通信 216
6.3 習(xí)題 221
第7章 輸入/輸出與文件管理 222
7.1 流 223
7.1.1 字節(jié)流 224
7.1.2 字符流 233
7.1.3 節(jié)點(diǎn)流和過(guò)濾流 242
7.2 文件的管理 244
7.2.1 File類(lèi) 245
7.2.2 Files類(lèi) 247
7.2.3 錯(cuò)誤處理與異常捕獲 250
7.3 對(duì)象序列化 252
7.4 習(xí)題 258
第8章 數(shù)據(jù)庫(kù)編程 259
8.1 JDBC接口 259
8.1.1 JDBC的基本工作流程 260
8.1.2 JDBC的架構(gòu) 261
8.2 連接數(shù)據(jù)庫(kù) 263
8.2.1 加載數(shù)據(jù)庫(kù)驅(qū)動(dòng) 263
8.2.2 獲取數(shù)據(jù)庫(kù)連接 267
8.3 執(zhí)行SQL語(yǔ)句 270
8.3.1 SQL語(yǔ)句概述 270
8.3.2 使用Statement執(zhí)行SQL語(yǔ)句 271
8.4 處理結(jié)果集 280
8.4.1 ResultSet對(duì)象 280
8.4.2 遍歷結(jié)果集 283
8.5 習(xí)題 285
第9章 圖形用戶(hù)界面 287
9.1 Swing簡(jiǎn)介 287
9.1.1 Swing基本概念 287
9.1.2 Swing與AWT的區(qū)別 290
9.2 創(chuàng)建窗口與面板 290
9.2.1 創(chuàng)建JFrame窗口 290
9.2.2 創(chuàng)建面板 293
9.2.3 嵌套面板 295
9.2.4 多面板的布局管理器組合 296
9.2.5 組件的常用屬性 297
9.3 處理事件 300
9.3.1 事件的基本概念 300
9.3.2 事件監(jiān)聽(tīng)器 301
9.3.3 事件對(duì)象 305
9.3.4 事件適配器 306
9.4 習(xí)題 307
第10章 網(wǎng)絡(luò)編程 309
10.1 核心類(lèi)與接口 309
10.1.1 java.net包 309
10.1.2 Socket類(lèi) 310
10.1.3 ServerSocket類(lèi) 312
10.1.4 DatagramSocket類(lèi) 313
10.1.5 java.nio包 314
10.2 TCP網(wǎng)絡(luò)通信編程 317
10.2.1 Java TCP通信基本概念 317
10.2.2 Socket類(lèi)與ServerSocket類(lèi)詳解 319
10.2.3 TCP通信實(shí)例 320
10.3 UDP網(wǎng)絡(luò)通信編程 323
10.3.1 Java UDP通信基本概念 323
10.3.2 DatagramSocket實(shí)現(xiàn)UDP Socket 325
10.3.3 UDP通信實(shí)例 326
10.4 習(xí)題 329