定 價(jià):¥109.00
作 者: | 李剛 |
出版社: | 電子工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 編程語言與程序設(shè)計(jì) 計(jì)算機(jī)?網(wǎng)絡(luò) |
ISBN: | 9787121331084 | 出版時(shí)間: | 2018-01-01 | 包裝: | |
開本: | 16 | 頁數(shù): | 896 | 字?jǐn)?shù): |
第1章 Java語言概述與開發(fā)環(huán)境 1
1.1 Java語言的發(fā)展簡(jiǎn)史 2
1.2 Java程序運(yùn)行機(jī)制 4
1.2.1 高級(jí)語言的運(yùn)行機(jī)制 4
1.2.2 Java程序的運(yùn)行機(jī)制和JVM 5
1.3 開發(fā)Java的準(zhǔn)備 6
1.3.1 下載和安裝Java 9的JDK 6
不是說JVM是運(yùn)行Java程序的虛擬機(jī)嗎?那JRE和JVM的關(guān)系是怎樣的呢? 6
為什么不安裝公共JRE呢? 8
1.3.2 設(shè)置PATH環(huán)境變量 9
為什么選擇用戶變量?用戶變量與系統(tǒng)變量有什么區(qū)別? 10
1.4 第一個(gè)Java程序 11
1.4.1 編輯Java源代碼 11
1.4.2 編譯Java程序 11
當(dāng)編譯C程序時(shí),不僅需要指定存放目標(biāo)文件的位置,也需要指定目標(biāo)文件的文件名,這里使用javac編譯Java程序時(shí)怎么不需要指定目標(biāo)文件的文件名呢? 12
1.4.3 運(yùn)行Java程序 12
1.4.4 根據(jù)CLASSPATH環(huán)境變量定位類 13
1.5 Java程序的基本規(guī)則 14
1.5.1 Java程序的組織形式 14
1.5.2 Java源文件的命名規(guī)則 15
1.5.3 初學(xué)者容易犯的錯(cuò)誤 15
1.6 JDK 9新增的jshell工具 17
1.7 Java 9的G1垃圾回收器 18
1.8 何時(shí)開始使用IDE工具 20
我想學(xué)習(xí)Java編程,到底是學(xué)習(xí)Eclipse好,還是學(xué)習(xí)NetBeans好呢? 21
1.9 本章小結(jié) 21
本章練習(xí) 21
第2章 理解面向?qū)ο?22
2.1 面向?qū)ο?23
2.1.1 結(jié)構(gòu)化程序設(shè)計(jì)簡(jiǎn)介 23
2.1.2 程序的三種基本結(jié)構(gòu) 24
2.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介 26
2.1.4 面向?qū)ο蟮幕咎卣?27
2.2 UML(統(tǒng)一建模語言)介紹 28
2.2.1 用例圖 30
2.2.2 類圖 30
2.2.3 組件圖 32
2.2.4 部署圖 33
2.2.5 順序圖 33
2.2.6 活動(dòng)圖 34
2.2.7 狀態(tài)機(jī)圖 35
2.3 Java的面向?qū)ο筇卣?36
2.3.1 一切都是對(duì)象 36
2.3.2 類和對(duì)象 36
2.4 本章小結(jié) 37
第3章 數(shù)據(jù)類型和運(yùn)算符 38
3.1 注釋 39
3.1.1 單行注釋和多行注釋 39
3.1.2 Java 9增強(qiáng)文檔注釋 40
API文檔是什么? 40
為什么要學(xué)習(xí)查看API文檔的方法? 42
3.2 標(biāo)識(shí)符和關(guān)鍵字 46
3.2.1 分隔符 46
3.2.2 Java 9的標(biāo)識(shí)符規(guī)則 48
3.2.3 Java關(guān)鍵字 48
3.3 數(shù)據(jù)類型分類 48
什么是變量?變量有什么用? 49
3.4 基本數(shù)據(jù)類型 49
3.4.1 整型 50
3.4.2 字符型 52
什么是字符集? 52
3.4.3 浮點(diǎn)型 53
3.4.4 數(shù)值中使用下畫線分隔 54
3.4.5 布爾型 55
3.5 基本類型的類型轉(zhuǎn)換 55
3.5.1 自動(dòng)類型轉(zhuǎn)換 56
3.5.2 強(qiáng)制類型轉(zhuǎn)換 57
3.5.3 表達(dá)式類型的自動(dòng)提升 58
3.6 直接量 59
3.6.1 直接量的類型 59
3.6.2 直接量的賦值 60
3.7 運(yùn)算符 61
3.7.1 算術(shù)運(yùn)算符 61
3.7.2 賦值運(yùn)算符 63
3.7.3 位運(yùn)算符 64
3.7.4 擴(kuò)展后的賦值運(yùn)算符 66
3.7.5 比較運(yùn)算符 67
3.7.6 邏輯運(yùn)算符 68
3.7.7 三目運(yùn)算符 69
3.7.8 運(yùn)算符的結(jié)合性和優(yōu)先級(jí) 69
3.8 本章小結(jié) 71
本章練習(xí) 71
第4章 流程控制與數(shù)組 72
4.1 順序結(jié)構(gòu) 73
4.2 分支結(jié)構(gòu) 73
4.2.1 if條件語句 73
4.2.2 Java 7增強(qiáng)后的switch分支語句 77
4.3 循環(huán)結(jié)構(gòu) 79
4.3.1 while循環(huán)語句 79
4.3.2 do while循環(huán)語句 80
4.3.3 for循環(huán) 81
4.3.4 嵌套循環(huán) 84
4.4 控制循環(huán)結(jié)構(gòu) 85
4.4.1 使用break結(jié)束循環(huán) 85
4.4.2 使用continue忽略本次循環(huán)剩下語句 86
4.4.3 使用return結(jié)束方法 87
4.5 數(shù)組類型 87
4.5.1 理解數(shù)組:數(shù)組也是一種類型 87
int[]是一種類型嗎?怎么使用這種類型呢? 88
4.5.2 定義數(shù)組 88
4.5.3 數(shù)組的初始化 89
能不能只分配內(nèi)存空間,不賦初始值呢? 89
4.5.4 使用數(shù)組 90
為什么要我記住這些異常信息? 90
4.5.5 foreach循環(huán) 91
4.6 深入數(shù)組 92
4.6.1 內(nèi)存中的數(shù)組 92
為什么有棧內(nèi)存和堆內(nèi)存之分? 93
4.6.2 基本類型數(shù)組的初始化 95
4.6.3 引用類型數(shù)組的初始化 96
4.6.4 沒有多維數(shù)組 98
我是否可以讓圖4.13中灰色覆蓋的數(shù)組元素再次指向另一個(gè)數(shù)組?這樣不就可以擴(kuò)展成三維數(shù)組,甚至擴(kuò)展成更多維的數(shù)組嗎? 99
4.6.5 Java 8增強(qiáng)的工具類:Arrays 100
4.6.6 數(shù)組的應(yīng)用舉例 103
4.7 本章小結(jié) 106
本章練習(xí) 106
第5章 面向?qū)ο螅ㄉ希?107
5.1 類和對(duì)象 108
5.1.1 定義類 108
構(gòu)造器不是沒有返回值嗎?為什么不能用void聲明呢? 110
5.1.2 對(duì)象的產(chǎn)生和使用 111
5.1.3 對(duì)象、引用和指針 111
5.1.4 對(duì)象的this引用 112
5.2 方法詳解 116
5.2.1 方法的所屬性 116
5.2.2 方法的參數(shù)傳遞機(jī)制 117
5.2.3 形參個(gè)數(shù)可變的方法 120
5.2.4 遞歸方法 121
5.2.5 方法重載 123
為什么方法的返回值類型不能用于區(qū)分重載的方法? 123
5.3 成員變量和局部變量 124
5.3.1 成員變量和局部變量是什么 124
5.3.2 成員變量的初始化和內(nèi)存中的運(yùn)行機(jī)制 127
5.3.3 局部變量的初始化和內(nèi)存中的運(yùn)行機(jī)制 129
5.3.4 變量的使用規(guī)則 130
5.4 隱藏和封裝 131
5.4.1 理解封裝 131
5.4.2 使用訪問控制符 131
5.4.3 package、import和import static 134
5.4.4 Java的常用包 139
5.5 深入構(gòu)造器 139
5.5.1 使用構(gòu)造器執(zhí)行初始化 139
構(gòu)造器是創(chuàng)建Java對(duì)象的途徑,是不是說構(gòu)造器完全負(fù)責(zé)創(chuàng)建Java對(duì)象? 140
5.5.2 構(gòu)造器重載 140
為什么要用this來調(diào)用另一個(gè)重載的構(gòu)造器?我把另一個(gè)構(gòu)造器里的代碼復(fù)制、粘貼到這個(gè)構(gòu)造器里不就可以了嗎? 142
5.6 類的繼承 142
5.6.1 繼承的特點(diǎn) 142
5.6.2 重寫父類的方法 143
5.6.3 super限定 145
5.6.4 調(diào)用父類構(gòu)造器 147
為什么我創(chuàng)建Java對(duì)象時(shí)從未感覺到j(luò)ava.lang. Object類的構(gòu)造器被調(diào)用過? 149
5.7 多態(tài) 149
5.7.1 多態(tài)性 149
5.7.2 引用變量的強(qiáng)制類型轉(zhuǎn)換 151
5.7.3 instanceof運(yùn)算符 152
5.8 繼承與組合 153
5.9 初始化塊 157
5.10 本章小結(jié) 162
本章練習(xí) 162
第6章 面向?qū)ο螅ㄏ拢?164
6.1 Java 8增強(qiáng)的包裝類 165
Java為什么要對(duì)這些數(shù)據(jù)進(jìn)行緩存呢? 168
6.2 處理對(duì)象 169
6.3 類成員 174
6.4 final修飾符 176
6.5 抽象類 188
6.6 Java 9改進(jìn)的接口 192
6.7 內(nèi)部類 202
6.8 Java 8新增的Lambda表達(dá)式 214
6.9 枚舉類 223
6.10 對(duì)象與垃圾回收 229
6.11 修飾符的適用范圍 236
6.12 Java 9的多版本JAR包 237
6.13 本章小結(jié) 242
本章練習(xí) 242
第7章 Java基礎(chǔ)類庫(kù) 243
7.1 與用戶互動(dòng) 244
7.2 系統(tǒng)相關(guān) 247
7.3 常用類 250
7.4 日期、時(shí)間類 262
7.5 正則表達(dá)式 268
7.6 變量處理和方法處理 274
7.7 Java 9改進(jìn)的國(guó)際化與格式化 276
7.8 Java 8新增的日期、時(shí)間格式器 286
7.9 本章小結(jié) 289
本章練習(xí) 289
第8章 Java集合 290
8.1 Java集合概述 291
8.2 Collection和Iterator接口 292
8.3 Set集合 300
8.4 List集合 313
8.5 Queue集合 317
8.6 Java 8增強(qiáng)的Map集合 322
8.7 HashSet和HashMap的性能選項(xiàng) 334
8.8 操作集合的工具類:Collections 335
8.9 煩瑣的接口:Enumeration 341
8.10 本章小結(jié) 342
本章練習(xí) 342
第9章 泛型 343
9.1 泛型入門 344
9.2 深入泛型 347
9.3 類型通配符 350
9.4 泛型方法 356
9.5 擦除和轉(zhuǎn)換 362
9.6 泛型與數(shù)組 364
9.7 本章小結(jié) 365
第10章 異常處理 366
10.1 異常概述 367
10.2 異常處理機(jī)制 368
10.3 Checked異常和Runtime異常體系 378
10.4 使用throw拋出異常 380
10.5 Java的異常跟蹤棧 386
10.6 異常處理規(guī)則 388
10.7 本章小結(jié) 390
本章練習(xí) 390
第11章 AWT編程 391
11.1 Java 9改進(jìn)的GUI(圖形用戶界面)和AWT 392
11.2 AWT容器 393
11.3 布局管理器 396
11.4 AWT常用組件 407
11.5 事件處理 411
11.6 AWT菜單 421
11.7 在AWT中繪圖 425
11.8 處理位圖 430
11.9 剪貼板 436
11.10 拖放功能 446
11.11 本章小結(jié) 451
本章練習(xí) 451
第12章 Swing編程 452
12.1 Swing概述 453
12.2 Swing基本組件的用法 454
12.3 Swing中的特殊容器 478
12.4 Swing簡(jiǎn)化的拖放功能 491
12.5 Java 7新增的Swing功能 492
12.6 使用JProgressBar、ProgressMonitor和BoundedRangeModel創(chuàng)建進(jìn)度條 500
12.7 使用JSlider和BoundedRangeModel創(chuàng)建滑動(dòng)條 505
12.8 使用JSpinner和SpinnerModel創(chuàng)建微調(diào)控制器 508
12.9 使用JList、JComboBox創(chuàng)建列表框 511
12.10 使用JTree和TreeModel創(chuàng)建樹 521
12.11 使用JTable和TableModel創(chuàng)建表格 535
12.12 使用JFormattedTextField和JTextPane創(chuàng)建格式文本 557
12.13 本章小結(jié) 575
本章練習(xí) 575
第13章 MySQL數(shù)據(jù)庫(kù)與JDBC編程 576
13.1 JDBC基礎(chǔ) 577
13.2 SQL語法 579
13.3 JDBC的典型用法 613
13.4 執(zhí)行SQL語句的方式 618
13.5 管理結(jié)果集 627
13.6 Javar的RowSet 636
13.7 事務(wù)處理 641
13.8 分析數(shù)據(jù)庫(kù)信息 646
13.9 使用連接池管理連接 649
13.10 本章小結(jié) 651
本章練習(xí) 651
第14章 注解(Annotation) 652
14.1 基本注解 653
14.2 JDK的元注解 657
14.3 自定義注解 660
14.4 編譯時(shí)處理注解 670
14.5 本章小結(jié) 674
第15章 輸入/輸出 675
15.1 File類 676
15.2 理解Java的IO流 679
15.3 字節(jié)流和字符流 681
15.4 輸入/輸出流體系 685
15.5 重定向標(biāo)準(zhǔn)輸入/輸出 690
15.6 Java虛擬機(jī)讀寫其他進(jìn)程的數(shù)據(jù) 691
15.7 RandomAccessFile 694
15.8 Java 9改進(jìn)的對(duì)象序列化 697
15.9 NIO 711
15.10 Java 7的NIO.2 721
15.11 本章小結(jié) 726
本章練習(xí) 727
第16章 多線程 728
16.1 線程概述 729
16.2 線程的創(chuàng)建和啟動(dòng) 731
16.3 線程的生命周期 735
16.4 控制線程 739
16.5 線程同步 743
16.6 線程通信 753
16.7 線程組和未處理的異常 761
16.8 線程池 764
16.9 線程相關(guān)類 769
16.10 本章小結(jié) 774
本章練習(xí) 775
第17章 網(wǎng)絡(luò)編程 776
17.1 網(wǎng)絡(luò)編程的基礎(chǔ)知識(shí) 777
17.2 Java的基本網(wǎng)絡(luò)支持 779
17.3 基于TCP協(xié)議的網(wǎng)絡(luò)編程 787
17.4 基于UDP協(xié)議的網(wǎng)絡(luò)編程 814
17.5 使用代理服務(wù)器 828
17.6 本章小結(jié) 832
本章練習(xí) 832
第18章 類加載機(jī)制與反射 833
18.1 類的加載、連接和初始化 834
18.2 類加載器 838
18.3 通過反射查看類信息 844
18.4 使用反射生成并操作對(duì)象 850
18.5 使用反射生成JDK動(dòng)態(tài)代理 857
18.6 反射和泛型 862
18.7 本章小結(jié) 865
本章練習(xí) 866
附錄A Java 9的模塊化系統(tǒng) 867
篇幅限制,部分小節(jié)未完整羅列,完整目錄請(qǐng)見本書。