本書全面而系統(tǒng)地介紹了面向對象編程思想、面向對象編程方法、Java語言的基礎知識、Applet、異常處理、多線程、Java I/O操作和Windows Socket編程。 本書的內容包括: 面向對象編程思想、Java語言的基礎知識介紹、常見Java類及函數(shù)的介紹、Java語言的多線程編程及應用、Applet 介紹及應用實例、Windows Socket編程及其應用。 本書的可讀性和實用性強,讀者范圍廣,主要作為研究生及高年級本科生的教材,也可作為網(wǎng)絡管理員的培訓教材,還可作為大專院校教師、網(wǎng)絡工程技術人員及通信工程技術人員的參考書籍。
內容全面而完整。包括面向對象編程思想、面向對象編程方法、Java語言的基礎知識、Applet、異常處理、多線程、Java I/O操作、Windows Socket編程等。
結構安排合理、圖文并茂、通俗易懂,能夠很好地幫助讀者學習和理解Java技術和面向對象編程方法。
注重理論與實踐相結合。本書由淺入深,利用大量典型實例,詳細講解了面向對象思想和方法,Java語言基礎,常見Java類庫的用法,深入闡述Java執(zhí)行程序的原理。結合實際并用面向對象方法和Java語言完成了一個項目實例。
第1章面向對象開發(fā)方法1
1.1面向對象軟件開發(fā)方法介紹1
1.1.1結構化軟件開發(fā)方法介紹1
1.1.2面向對象軟件開發(fā)方法簡介2
1.2面向對象的基本概念3
1.3UML語言簡介7
思考題9
第2章Java基礎10
2.1Java語言概述10
2.1.1Java語言對軟件開發(fā)技術的影響10
2.1.2Java語言的應用前景10
2.1.3Java語言特點11
2.1.4Java Applet13
2.1.5類庫13
2.2安裝并配置Java平臺15
2.2.1Java平臺概述15
2.2.2Java平臺的安裝16
2.3Java Application程序范例22
2.3.1編輯源程序22
2.3.2編譯源程序23
2.3.3字節(jié)碼的解釋與運行23
2.4集成開發(fā)環(huán)境24
思考題27
第3章Java語言基礎28
3.1常量與變量28〖3〗3.1.1常量28
3.1.2變量29
3.2Java程序的構成29
3.2.1分隔符30
3.2.2注釋31
3.2.3關鍵詞31
3.2.4標識符32
3.3運算符32
3.3.1算術運算32
3.3.2關系運算34
3.3.3邏輯運算34
3.3.4位運算35
3.3.5類型轉換36
3.3.6其他運算符37
3.3.7運算符的優(yōu)先級39
3.4表達式、語句、程序塊40
3.4.1表達式40
3.4.2語句41
3.4.3程序塊41
3.5基本數(shù)據(jù)類型42
3.5.1整數(shù)類型42
3.5.2浮點類型43
3.5.3字符類型43
3.5.4布爾類型43
3.6流程控制44
3.6.1選擇結構44
3.6.2循環(huán)結構47
3.6.3跳轉語句49
思考題51第4章類與對象53
4.1類53
4.1.1類聲明和定義53
4.1.2方法定義和構造函數(shù)57
4.1.3形參和實參59
4.1.4類應用61
4.2對象63
4.2.1創(chuàng)建對象63
4.2.2使用對象66
4.3嵌套類67
4.3.1嵌套類定義67
4.3.2嵌套類意義67
4.3.3靜態(tài)嵌套類68
4.3.4內部類68
4.3.5內部類實例68
思考題69
第5章接口與繼承70
5.1接口70
5.1.1Java接口概述70
5.1.2Java接口定義71
5.1.3Java接口類型73
5.1.4Java接口覆蓋73
5.2繼承74
5.2.1Java繼承概述74
5.2.2父類私有成員訪問76
5.2.3對象轉換76
5.2.4覆蓋和隱藏77
5.2.5多態(tài)79
5.2.6Object超類80
5.3類和方法825.3.1final類和方法82
5.3.2抽象類和方法82
思考題84
第6章數(shù)字與字符串85
6.1數(shù)字85
6.1.1數(shù)字類85
6.1.2Math類的常量和方法87
6.2字符及字符串89
6.2.1字符89
6.2.2字符串90
6.2.3String對象90
6.2.4字符串的訪問92
6.2.5字符串的修改93
6.2.6字符串與數(shù)字的轉換95
6.2.7字符串的比較97
6.2.8StringBuffer類101
6.2.9StringBuilder類103
思考題103
第7章泛型與包104
7.1泛型104
7.1.1泛型概述104
7.1.2規(guī)則105
7.1.3泛型應用105
7.1.4通配符111
7.2包113
7.2.1包概述114
7.2.2包命名116
7.2.3包成員引入116
7.2.4包的層次結構1177.2.5不同包中相同成員117
7.2.6靜態(tài)import117
7.2.7系統(tǒng)默認包java.lang118
思考題123
第8章異常124
8.1異常基礎知識124
8.1.1異常概述124
8.1.2異常處理128
8.1.3異常分類128
8.2捕獲和處理異常130
8.2.1try模塊131
8.2.2catch模塊132
8.2.3finally模塊132
8.2.4trycatchfinally程序塊的執(zhí)行流程以及執(zhí)行結果133
8.3聲明拋出異常134
8.3.1throws拋出異常134
8.3.2throw和throws的區(qū)別136
思考題137
第9章輸入輸出和文件139
9.1字符集編碼139
9.1.1常用字符集139
9.1.2Java對字符的處理140
9.2輸入/輸出流142
9.2.1流的概念142
9.2.2Java的標準輸入/輸出142
9.2.3java.io包中的流143
9.2.4字節(jié)流143
9.2.5字符流146
9.2.6字節(jié)流和字符流轉換1489.2.7BufferedReader和BufferedWriter151
9.2.8面向行的I/O152
9.2.9數(shù)據(jù)流153
9.2.10對象流及序列化155
9.2.11Java輸入輸出的使用原則158
9.3文件159
9.3.1文件路徑159
9.3.2文件操作159
9.3.3文件讀寫162
思考題165
第10章并發(fā)167
10.1處理器和線程167
10.1.1處理器167
10.1.2線程167
10.2多線程168
10.2.1線程的創(chuàng)建168
10.2.2Sleep暫停執(zhí)行170
10.2.3中斷Interrupts171
10.2.4線程狀態(tài)轉換172
10.3同步173
10.3.1線程的干擾173
10.3.2內存一致性錯誤175
10.3.3同步方法175
10.3.4內部鎖與同步塊176
10.3.5wait()、notify()和notifyAll()177
10.3.6原子操作178
10.3.7死鎖178
10.3.8活鎖179
10.4線程調度179
10.4.1休眠17910.4.2優(yōu)先級180
10.4.3讓步181
10.4.4合并182
10.4.5守護線程183
思考題184
第11章平臺環(huán)境186
11.1配置工具186
11.1.1屬性集186
11.1.2命令行參數(shù)189
11.2系統(tǒng)配置190
11.2.1命令行I/O對象190
11.2.2系統(tǒng)屬性191
思考題192
第12章Java集合193
12.1集合框架193
12.2接口與實現(xiàn)194
12.2.1Collection接口194
12.2.2List接口196
12.2.3Queue接口199
12.2.4Set接口199
12.2.5Map接口201
12.2.6Iterator接口203
12.2.7Comparable接口和Comparator接口204
12.3算法206
12.3.1排序206
12.3.2混排207
12.3.3數(shù)據(jù)操作208
12.3.4搜索210
12.3.5取極值210思考題211
第13章Swing組件212
13.1Swing概要212
13.1.1JFC簡介212
13.1.2Swing歷史213
13.1.3Swing特點213
13.1.4Swing包214
13.2Swing程序結構214
13.3Swing組件和容器215
13.3.1高級容器216
13.3.2JComponent類218
13.3.3文本組件219
13.3.4按鈕組件221
13.3.5面板(JPanel)222
13.3.6滾動窗口(JScrollPane)224
13.3.7列表(JList)225
13.3.8組合框(JcomboBox)226
13.3.9菜單(JMenu)227
13.3.10對話框(JDialog)230
13.3.11表格(JTable)231
13.3.12提醒工具(tool tips)231
13.3.13邊框(Borders)232
13.3.14布局管理234
思考題237
第14章網(wǎng)絡編程基礎238
14.1InetAddress238
14.1.1InetAddress簡介238
14.1.2創(chuàng)建InetAddress對象的方法239
14.1.3InetAddress對象常用方法24014.2URL242
14.2.1URL介紹242
14.2.2URL組成242
14.2.3創(chuàng)建URL對象242
14.2.4獲取URL對象的屬性243
14.2.5從URL讀取網(wǎng)頁245
14.3URLConnection246
14.3.1URLConnection定義246
14.3.2URLConnection對象的連接246
14.3.3從URLConnection對象讀取數(shù)據(jù)247
14.4TCP/UDP協(xié)議247
14.4.1TCP協(xié)議248
14.4.2UDP協(xié)議248
14.5Socket套接字248
14.5.1Socket概述248
14.5.2Socket通信機制249
14.5.3Socket類和ServerSocket類249
14.5.4簡單的Client/Server程序設計250
思考題253
附錄英文縮略詞255
參考文獻256
3.5.3源碼應用12
3.6思考問題16
第4章RSA算法17
4.1實驗目的與要求17
4.2實驗環(huán)境17
4.3背景知識17
4.3.1非對稱加密算法17
4.3.2RSA算法概述18
4.3.3RSA算法的加密和解密過程18
4.4實驗內容18
4.5實驗步驟19
4.5.1RSA生成公私鑰及加密、解密過程演示19
4.5.2RSA加密解密20
4.5.3源碼應用21
4.6思考問題26
第5章PKI證書應用27
5.1實驗目的與要求27
5.2實驗環(huán)境27
5.3背景知識27
5.3.1PKI原理及特點27
5.3.2PKI組件27
5.3.3證書應用28
5.4實驗內容29
5.5實驗步驟29
5.5.1無認證29
5.5.2單向認證30
5.6思考問題38〖3〗第6章主動水印攻擊39
6.1實驗目的與要求39
6.2實驗環(huán)境39
6.3背景知識39
6.3.1數(shù)字水印基礎39
6.3.2數(shù)字水印攻擊手段39
6.4實驗內容41
6.5實驗步驟41
6.5.1手動攻擊41
6.5.2多水印攻擊42
6.5.3自選攻擊42
6.5.4Stirmark自動攻擊43
6.6思考問題45
第7章DDoS攻擊46
7.1實驗目的與要求46
7.2實驗環(huán)境46
7.3背景知識46
7.3.1DoS攻擊46
7.3.2DDoS攻擊46
7.3.3TFN2K簡介47
7.3.4TFN2K使用方法47
7.4實驗內容48
7.5實驗步驟48
7.5.1編譯生成執(zhí)行文件48
7.5.2TFN2K攻擊50
7.6思考問題52
第8章ARP欺騙攻擊53
8.1實驗目的與要求53
8.2實驗環(huán)境538.3背景知識53
8.3.1ARP協(xié)議53
8.3.2ARP欺騙攻擊54
8.3.3ARP命令解釋55
8.4實驗內容55
8.5實驗步驟55
8.5.1ARP欺騙攻擊56
8.5.2防范ARP欺騙58
8.6思考問題60
第9章TCP端口掃描61
9.1實驗目的與要求61
9.2實驗環(huán)境61
9.3背景知識61
9.3.1端口掃描61
9.3.2TCP協(xié)議簡介61
9.3.3常用端口掃描技術62
9.4實驗內容64
9.5實驗步驟64
9.5.1TCP全掃描64
9.5.2TCP SYN掃描67
9.6思考問題75
第10章模擬攻擊方法76
10.1實驗目的與要求76
10.2實驗環(huán)境76
10.3背景知識76
10.3.1漏洞掃描技術76
10.3.2漏洞掃描工具77
10.3.3Telnet命令78〖3〗10.4實驗內容78
10.5實驗步驟78
10.5.1初步掃描79
10.5.2進一步掃描80
10.5.3開啟遠程桌面服務81
10.5.4建立新用戶82
10.5.5添加磁盤映射83
10.6思考問題84
第11章Winpcap嗅探器85
11.1實驗目的與要求85
11.2實驗環(huán)境85
11.3背景知識85
11.3.1網(wǎng)絡嗅探技術85
11.3.2Winpcap開源庫85
11.3.3Winpcap的內部結構86
11.3.4Winpcap接口函數(shù)介紹87
11.4實驗內容89
11.5實驗步驟89
11.5.1創(chuàng)建工程89
11.5.2配置編譯環(huán)境91
11.5.3運行程序91
11.6思考問題92
第12章利用跳轉指令實現(xiàn)緩沖區(qū)溢出93
12.1實驗目的與要求93
12.2實驗環(huán)境93
12.3背景知識93
12.4實驗內容97
12.5實驗步驟97
12.5.1編寫填充碼9812.5.2查找jmp esp指令地址99
12.5.3生成實現(xiàn)彈出對話框的指令碼100
12.6思考問題101
第13章基于網(wǎng)絡入侵檢測系統(tǒng)102
13.1實驗目的與要求102
13.2實驗環(huán)境102
13.3背景知識102
13.3.1入侵檢測系統(tǒng)102
13.3.2snort介紹103
13.4實驗內容104
13.5實驗步驟104
13.5.1snort數(shù)據(jù)包嗅探105
13.5.2snort數(shù)據(jù)包記錄106
13.5.3簡單報警規(guī)則108
13.6思考問題109
第14章自制蜜罐110
14.1實驗目的與要求110
14.2實驗環(huán)境110
14.3背景知識110
14.3.1蠕蟲病毒110
14.3.2蜜罐111
14.3.3蜜罐的基本配置111
14.3.4蜜罐的分類112
14.4實驗內容114
14.5實驗步驟114
14.5.1提取蠕蟲病毒特征并升級入侵檢測規(guī)則庫114
14.5.2利用蜜罐與網(wǎng)絡蠕蟲進行交互115
14.5.3通過蜜罐軟件實現(xiàn)虛擬蜜罐117〖3〗14.6思考問題118
第15章利用OpenVPN構建企業(yè)VPN119
15.1實驗目的與要求119
15.2實驗環(huán)境119
15.3背景知識119
15.3.1VPN簡介119
15.3.2SSL VPN簡介119
15.3.3Open VPN簡介120
15.4實驗內容121
15.5實驗步驟121
15.5.1搭建企業(yè)網(wǎng)絡環(huán)境122
15.5.2架設OpenVPN網(wǎng)關125
15.5.3打開內網(wǎng)Web/FTP服務127
15.5.4配置OpenVPN客戶端建立VPN隧道127
15.6思考問題130
第16章iptables應用131
16.1實驗目的與要求131
16.2實驗環(huán)境131
16.3背景知識131
16.3.1防火墻131
16.3.2iptables132
16.4實驗內容132
16.5實驗步驟132
16.5.1包過濾實驗132
16.5.2事件審計實驗134
16.5.3開放/關閉指定端口用于傳輸文件134
16.6思考問題138第17章計算機木馬攻擊139
17.1實驗目的與要求139
17.2實驗環(huán)境139
17.3背景知識139
17.3.1木馬的植入140
17.3.2木馬的安裝140
17.3.3木馬的運行141
17.3.4木馬的自啟動141
17.4實驗內容141
17.5實驗步驟141
17.5.1木馬制作141
17.5.2木馬種植142
17.5.3木馬分析142
17.5.4卸載灰鴿子144
17.5.5木馬功能驗證145
17.6思考問題145
第18章開源反病毒軟件工具實驗146
18.1實驗目的與要求146
18.2實驗環(huán)境146
18.3背景知識146
18.3.1計算機病毒的基本原理146
18.3.2clamAV介紹148
18.4實驗內容148
18.5實驗步驟149
18.5.1安裝步驟149
18.5.2使用clam進行查殺150
18.6思考問題153
參考文獻154