本書從零基礎(chǔ)開始,對(duì)Java SE相關(guān)知識(shí)進(jìn)行了深入細(xì)致的講解。
全書共分為13章,主要內(nèi)容包括Java語言概述、Java基礎(chǔ)語法、面向?qū)ο缶幊、異常處理、API常用類的使用、多線程機(jī)制、泛型、集合框架、I/O編程、網(wǎng)絡(luò)編程、Swing編程、標(biāo)注和反射等。
本書通俗易懂、術(shù)語表述嚴(yán)謹(jǐn)規(guī)范、配有典型實(shí)用的示例代碼和深入透徹的問題剖析。
本書既可以作為普通高等院校的教材,也可以作為職業(yè)培訓(xùn)機(jī)構(gòu)的教程及Java編程愛好者的自學(xué)用書。
Java作為當(dāng)前最熱門的編程語言之一,吸引著全世界編程愛好者。本書以Java SE 7.0為基礎(chǔ),全面、系統(tǒng)地介紹Java SE的核心技術(shù)。本書通過條理清晰的知識(shí)歸納、通俗易懂的示例講解,讓初學(xué)者快速掌握J(rèn)ava SE的核心技術(shù)。
本書融合Java SE核心技術(shù)和具體實(shí)踐于一體,是作者對(duì)多年軟件開發(fā)經(jīng)驗(yàn)和多年教學(xué)實(shí)踐經(jīng)驗(yàn)的總結(jié)。對(duì)于書中的每一個(gè)知識(shí)點(diǎn)歸納、每一段示例代碼,讀者如果細(xì)研讀并加以理解和實(shí)踐,必定會(huì)從中受益。
1. 本書內(nèi)容
本書共分為13章,涵蓋Java SE的技術(shù)要點(diǎn)。各章的主要內(nèi)容說明如下。
第1章:全面、系統(tǒng)地介紹Java語言的發(fā)展簡(jiǎn)史,Java語言的特性,Java開發(fā)環(huán)境的搭建,Java程序的編寫、編譯和運(yùn)行過程。
第2章:詳細(xì)講解Java語言的基本語法,從標(biāo)識(shí)符、變量、數(shù)據(jù)類型到程序結(jié)構(gòu)。
第3章和第4章:全面、透徹地講解面向?qū)ο缶幊痰乃枷牒蛻?yīng)用。通過大量示例來講解面向?qū)ο缶幊痰娜筇卣鳎悍庋b、繼承和多態(tài)。
第5章:詳細(xì)講解異常的處理,對(duì)異常產(chǎn)生的原理及處理機(jī)制進(jìn)行深入分析,并提供實(shí)用的異常處理建議。
第6章:介紹Java SE API中常見類的使用,通過大量的示例,來演示這些常用類的典型使用場(chǎng)景。
第7章:針對(duì)多線程技術(shù)進(jìn)行全面介紹,詳細(xì)講解進(jìn)程和線程的區(qū)別,同時(shí)對(duì)線程不安全的問題也進(jìn)行詳細(xì)闡述并提供相應(yīng)的解決方案。
第8章和第9章:介紹泛型技術(shù)和集合框架的使用。
第10章:對(duì)Java語言中的I/O編程進(jìn)行詳解的講解,通過大量示例應(yīng)用,展示在實(shí)際開發(fā)中如何應(yīng)用I/O類解決文件內(nèi)容讀取問題。
第11章:對(duì)網(wǎng)絡(luò)編程進(jìn)行概述性講解,首先介紹網(wǎng)絡(luò)通信協(xié)議,然后用Java語言中的TCP編程、UDP編程編寫幾個(gè)網(wǎng)絡(luò)通信的示例。
第12章:通過Swing進(jìn)行GUI編程介紹,主要包括常用Swing組件、布局管理器、事件處理等知識(shí)的講解。
第13章:介紹Java SE中的高級(jí)內(nèi)容:標(biāo)注和反射,這是目前較為流行的技術(shù),通過大量的示例講解來介紹相應(yīng)的知識(shí)點(diǎn)。
2. 本書特色
(1)本書在每章后面,均配有上機(jī)實(shí)訓(xùn),以便課后加強(qiáng)讀者的動(dòng)手能力。
(2)每章后面的習(xí)題用于幫助讀者溫習(xí)所學(xué)知識(shí)。
(3)對(duì)于一些細(xì)節(jié),本書在需特別注意的地方,均設(shè)置“注意”段落,以便讀者更好地掌握這些細(xì)節(jié)。
3. 適用讀者
本書專門為在校學(xué)生和零基礎(chǔ)的讀者量身定制,是普通高等院校Java程序設(shè)計(jì)課程的首選教材,同時(shí)也可作為職業(yè)培訓(xùn)機(jī)構(gòu)的教程以及Java編程愛好者的自學(xué)用書。
4. 本書作者
本書由CSDN旗下天津Java實(shí)訓(xùn)基地教學(xué)總監(jiān)邱加永主編,天津市大學(xué)軟件學(xué)院教學(xué)與實(shí)訓(xùn)部張仁杰、張靜擔(dān)任副主編。孫連偉、武迪等老師參與了編輯。編者力求表述規(guī)范嚴(yán)謹(jǐn),通俗易懂。但限于自身水平,疏漏之處在所難免,如果在閱讀的過程中遇到什么問題或者有好的建議或意見,歡迎隨時(shí)與我們聯(lián)系。相關(guān)問題的討論,讀者朋友可以加入QQ群:45390709,或發(fā)送郵件到qjyong@gmail.com與作者交流。
第1章 Java概述1
1.1 Java語言簡(jiǎn)介2
1.1.1 Java語言發(fā)展簡(jiǎn)史2
1.1.2 Java語言的特性3
1.2 Java技術(shù)的核心5
1.2.1 Java虛擬機(jī)5
1.2.2 垃圾回收機(jī)制5
1.3 Java平臺(tái)體系結(jié)構(gòu)5
1.4 搭建Java程序的開發(fā)環(huán)境7
1.4.1 JDK的安裝和配置7
1.4.2 Eclipse的安裝和使用11
1.5 Java程序開發(fā)步驟15
1.5.1 編輯Java源代碼15
1.5.2 編譯Java程序16
1.5.3 運(yùn)行Java程序17
1.6 Java程序的裝載和執(zhí)行過程18
1.6.1 裝載程序19
1.6.2 檢驗(yàn)程序19
1.6.3 執(zhí)行程序19
1.7 上機(jī)實(shí)訓(xùn)19
本章習(xí)題19
第2章 Java語言的基礎(chǔ)語法21
2.1 Java程序的基本結(jié)構(gòu)22
2.1.1 代碼框架22
2.1.2 注釋23
2.1.3 標(biāo)識(shí)符24
2.1.4 關(guān)鍵字24
2.2 數(shù) 據(jù) 類 型24
2.2.1 整數(shù)型25
2.2.2 浮點(diǎn)型25
2.2.3 字符型26
2.2.4 布爾型27
2.3 變量27
2.3.1 變量的聲明、初始化和使用27
2.3.2 變量的作用域28
2.4 數(shù)據(jù)類型間的轉(zhuǎn)換29
2.4.1 自動(dòng)轉(zhuǎn)換29
2.4.2 強(qiáng)制轉(zhuǎn)換29
2.5 運(yùn)算符30
2.5.1 算術(shù)運(yùn)算符30
2.5.2 賦值運(yùn)算符31
2.5.3 關(guān)系運(yùn)算符32
2.5.4 邏輯運(yùn)算符32
2.5.5 三目運(yùn)算符33
2.5.6 位運(yùn)算符33
2.5.7 表達(dá)式35
2.5.8 表達(dá)式類型的自動(dòng)提升35
2.5.9 運(yùn)算符優(yōu)先級(jí)36
2.6 流程控制36
2.6.1 順序語句37
2.6.2 條件語句37
2.6.3 循環(huán)語句43
2.6.4 使用break和continue控制循環(huán)語句46
2.6.5 流程控制綜合應(yīng)用48
2.7 數(shù)組50
2.7.1 一維數(shù)組50
2.7.2 多維數(shù)組53
2.8 上機(jī)實(shí)訓(xùn)56
本章習(xí)題57
第3章 面向?qū)ο缶幊?上)59
3.1 面向?qū)ο缶幊谈攀?0
3.1.1 面向過程的設(shè)計(jì)思想60
3.1.2 面向?qū)ο蟮脑O(shè)計(jì)思想61
3.1.3 類和對(duì)象61
3.2 封裝類62
3.2.1 定義屬性63
3.2.2 定義方法64
3.2.3 定義構(gòu)造器65
3.3 對(duì)象的創(chuàng)建和使用68
3.3.1 對(duì)象的創(chuàng)建68
3.3.2 屬性的初始化69
3.3.3 對(duì)象的使用69
3.3.4 對(duì)象的回收70
3.4 深入理解方法70
3.4.1 方法的參數(shù)傳遞70
3.4.2 方法重載72
3.4.3 方法的可變參數(shù)73
3.4.4 遞歸方法74
3.5 this關(guān)鍵字75
3.6 屬性、參數(shù)和局部變量的關(guān)系77
3.7 JavaBean77
3.8 包78
3.8.1 聲明包78
3.8.2 編譯帶包的類79
3.8.3 使用帶包的類79
3.8.4 JDK中的常用包80
3.9 文檔注釋81
3.9.1 在源代碼中插入文檔注釋81
3.9.2 常規(guī)標(biāo)記81
3.9.3 類或接口注釋82
3.9.4 方法注釋83
3.9.5 屬性注釋84
3.9.6 包和概述注釋85
3.9.7 提取注釋生成幫助文檔85
3.10 上機(jī)實(shí)訓(xùn)86
本章習(xí)題87
第4章 面向?qū)ο缶幊?下)89
4.1 類的繼承90
4.1.1 繼承說明91
4.1.2 繼承的優(yōu)點(diǎn)92
4.1.3 繼承設(shè)計(jì)92
4.2 super關(guān)鍵字93
4.3 訪問控制符93
4.4 常用修飾符96
4.4.1 static96
4.4.2 final100
4.5 方法覆蓋102
4.6 多態(tài)104
4.6.1 對(duì)象變量多態(tài)104
4.6.2 多態(tài)方法107
4.6.3 多態(tài)參數(shù)108
4.7 抽象類110
4.8 接口112
4.8.1 接口的定義和實(shí)現(xiàn)113
4.8.2 接口中的變量115
4.8.3 多重接口115
4.9 嵌套類116
4.9.1 嵌套類的定義語法117
4.9.2 內(nèi)部類117
4.9.3 靜態(tài)嵌套類120
4.10 JAR文件121
4.10.1 jar命令121
4.10.2 清單文件122
4.10.3 創(chuàng)建可執(zhí)行的JAR文件122
4.11 上機(jī)實(shí)訓(xùn)123
本章習(xí)題124
第5章 異常129
5.1 異常概述130
5.2 異常類的層次結(jié)構(gòu)131
5.2.1 Error類132
5.2.2 Exception類132
5.3 異常的處理133
5.3.1 try、catch和finally語句塊133
5.3.2 輸出異常信息135
5.3.3 異常棧跟蹤137
5.4 聲明異常138
5.5 手動(dòng)拋出異常139
5.6 自定義異常140
5.6.1 定義異常類140
5.6.2 使用自定義異常類141
5.7 JDK 7新增的異常處理語法141
5.7.1 try-with-resources語句141
5.7.2 catch多個(gè)Exception142
5.8 處理異常時(shí)的建議143
5.9 上機(jī)實(shí)訓(xùn)143
本章習(xí)題143
第6章 Java SE API常用類147
6.1 Java SE API文檔概述148
6.1.1 下載Java SE API文檔148
6.1.2 Java SE API文檔的結(jié)構(gòu)149
6.1.3 使用Java SE API文檔150
6.2 java.lang包151
6.2.1 Object類151
6.2.2 基本數(shù)據(jù)類型的包裝類156
6.2.3 枚舉類型和枚舉類157
6.2.4 Math類160
6.2.5 System類161
6.2.6 Runtime類165
6.2.7 String類168
6.2.8 StringBuilder和StringBuffer類173
6.3 java.util包174
6.3.1 Random類175
6.3.2 Arrays類176
6.3.3 日期和時(shí)間相關(guān)類178
6.4 國(guó)際化相關(guān)類182
6.4.1 java.util.Locale類182
6.4.2 java.text.MessageFormat類的格式化字符串183
6.4.3 Java程序國(guó)際化183
6.4.4 java.text.NumberFormat類的格式化數(shù)字方法186
6.4.5 java.text.DateFormat類的格式化日期時(shí)間方法187
6.5 正則表達(dá)式相關(guān)類190
6.5.1 正則表達(dá)式語法190
6.5.2 Java SE中的正則表達(dá)式API193
6.5.3 字符串類中與正則表達(dá)式相關(guān)的方法195
6.5.4 正則表達(dá)式使用示例195
6.6 大數(shù)字操作197
6.6.1 BigInteger197
6.6.2 BigDecimal198
6.7 上機(jī)實(shí)訓(xùn)199
本章習(xí)題200
第7章 多線程201
7.1 線程概述202
7.1.1 進(jìn)程202
7.1.2 線程202
7.1.3 多進(jìn)程和多線程的區(qū)別203
7.2 線程的創(chuàng)建和啟動(dòng)203
7.2.1 單線程程序203
7.2.2 創(chuàng)建新線程204
7.2.3 啟動(dòng)線程205
7.2.4 Thread類的常用方法207
7.2.5 為什么需要多線程程序208
7.2.6 線程分類208
7.3 線程的狀態(tài)及轉(zhuǎn)換208
7.3.1 新線程209
7.3.2 可運(yùn)行的線程209
7.3.3 被阻塞和處于等待狀態(tài)下的線程209
7.3.4 被終止的線程210
7.4 多線程的調(diào)度和優(yōu)先級(jí)210
7.4.1 線程調(diào)度原理210
7.4.2 線程優(yōu)先級(jí)211
7.5 線程的基本控制212
7.5.1 線程睡眠212
7.5.2 線程讓步213
7.5.3 線程加入214
7.6 多線程的同步215
7.6.1 線程安全問題215
7.6.2 synchronized關(guān)鍵字217
7.6.3 對(duì)象鎖219
7.6.4 死鎖220
7.7 線程交互221
7.7.1 Object提供的wait和notify方法221
7.7.2 生產(chǎn)者-消費(fèi)者問題222
7.8 用Timer類調(diào)度任務(wù)224
7.9 上機(jī)實(shí)訓(xùn)225
本章習(xí)題226
第8章 使用泛型229
8.1 泛型概述230
8.2 泛型類和接口的定義及使用232
8.2.1 定義泛型類和接口232
8.2.2 從泛型類派生子類233
8.2.3 實(shí)現(xiàn)泛型接口234
8.3 有界類型參數(shù)234
8.4 泛型方法236
8.5 類型參數(shù)的通配符237
8.6 擦除237
8.7 泛型的局限239
8.8 上機(jī)實(shí)訓(xùn)240
第9章 Java集合框架241
9.1 Java集合框架概述242
9.2 Collection接口及Iterator接口242
9.2.1 Collection接口242
9.2.2 Iterator接口243
9.3 Set接口及實(shí)現(xiàn)類244
9.3.1 Set接口244
9.3.2 HashSet實(shí)現(xiàn)類245
9.3.3 LinkedHashSet實(shí)現(xiàn)類248
9.4 List接口及實(shí)現(xiàn)類249
9.4.1 List接口249
9.4.2 ArrayList類250
9.4.3 LinkedList實(shí)現(xiàn)類251
9.5 Map接口及實(shí)現(xiàn)類253
9.5.1 Map接口253
9.5.2 HashMap類254
9.5.3 LinkedHashMap類255
9.6 遺留的集合類256
9.6.1 Vector類256
9.6.2 Stack類257
9.6.3 Hashtable類258
9.6.4 Properties類258
9.7 排序集合259
9.7.1 Comparable接口260
9.7.2 TreeSet類261
9.7.3 Comparator接口262
9.7.4 TreeMap類264
9.8 集合工具類265
9.8.1 算法操作265
9.8.2 同步控制267
9.9 如何選擇合適的集合類267
9.10 上機(jī)實(shí)訓(xùn)268
本章習(xí)題268
第10章 I/O流271
10.1 File類272
10.1.1 文件和目錄272
10.1.2 Java對(duì)文件的抽象272
10.2 I/O原理276
10.3 流類概述277
10.3.1 I/O流分類277
10.3.2 抽象流類277
10.4 文件流280
10.4.1 FileInputStream和FileOutputStream280
10.4.2 FileReader和FileWriter284
10.5 緩沖流285
10.6 轉(zhuǎn)換流286
10.6.1 InputStreamReader286
10.6.2 OutputStreamWriter288
10.7 數(shù)據(jù)流288
10.8 打印流289
10.9 對(duì)象流291
10.9.1 序列化和反序列化操作292
10.9.2 序列化的版本標(biāo)識(shí)294
10.10 隨機(jī)存取文件流295
10.11 上機(jī)實(shí)訓(xùn)297
本章習(xí)題298
第11章 網(wǎng)絡(luò)編程301
11.1 網(wǎng)絡(luò)編程基礎(chǔ)知識(shí)302
11.1.1 網(wǎng)絡(luò)基本概念302
11.1.2 網(wǎng)絡(luò)傳輸協(xié)議304
11.2 Java與網(wǎng)絡(luò)306
11.2.1 InetAddress類306
11.2.2 URL類308
11.2.3 URLConnection類310
11.2.4 URLEncoder和URLDecoder類314
11.3 Java網(wǎng)絡(luò)編程316
11.3.1 套接字316
11.3.2 基于TCP協(xié)議的網(wǎng)絡(luò)編程316
11.3.3 基于UDP協(xié)議的網(wǎng)絡(luò)編程324
11.4 上機(jī)實(shí)訓(xùn)329
本章習(xí)題330
第12章 GUI編程331
12.1 Swing概述332
12.1.1 Swing是什么332
12.1.2 Swing架構(gòu)332
12.2 Swing容器333
12.2.1 頂層容器333
12.2.2 通用容器337
12.2.3 專用容器344
12.3 繪圖345
12.3.1 2D圖形346
12.3.2 顏色348
12.3.3 文本和字體348
12.3.4 圖像349
12.4 Swing組件350
12.4.1 Swing組件的層次結(jié)構(gòu)351
12.4.2 按鈕352
12.4.3 文本組件354
12.4.4 不可編輯信息顯示組件357
12.4.5 菜單相關(guān)360
12.4.6 其他組件363
12.5 布局管理器364
12.5.1 FlowLayout365
12.5.2 BorderLayout367
12.5.3 GridLayout368
12.6 處理GUI事件369
12.6.1 Java SE事件模型370
12.6.2 GUI事件分類373
12.6.3 事件適配器374
12.7 切換Swing觀感376
12.8 上機(jī)實(shí)訓(xùn)378
本章習(xí)題379
第13章 標(biāo)注和反射381
13.1 標(biāo)注382
13.1.1 標(biāo)注概述382
13.1.2 使用JDK內(nèi)置的標(biāo)注382
13.1.3 自定義標(biāo)注386
13.1.4 標(biāo)注的標(biāo)注387
13.2 反射390
13.2.1 Java反射API391
13.2.2 Class類391
13.2.3 獲取類信息393
13.2.4 生成對(duì)象396
13.2.5 調(diào)用方法398
13.2.6 訪問成員變量的值400
13.2.7 操作數(shù)組401
13.2.8 獲取泛型信息403
13.2.9 使用反射獲取標(biāo)注信息404
13.2.10 反射與代理406
13.3 上機(jī)實(shí)訓(xùn)410
本章習(xí)題410
參考答案413