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