內容簡介
《Java 就業培訓教程》全書共分11章。第1章詳細地講解了Java開發環境的搭建、反編譯工具的使用、JDK文檔資料的查閱以及Java程式的編譯和運行過程。第2章系統地講解了Java的一些常用語法,在講解語法的過程中,作者把常見問題進行了正反對比,分析了問題產生的根源,旨在加深印象。在第3章和第4章中,透徹系統地講解了面向對象的思想和套用,用通俗形象的語言、典型翔實的例子、鮮明的對照比較,闡述了初學者最容易迷惑的一些思想理念。在以後的章節中,作者始終以“啟發編程思想,培養編程感覺”為指導。作者長期工作在開發與教學的第一線,既考慮了在實際開發中經常遇到的難題,也分析了眾多學員在學習中經常困惑的問題。
作者簡介
張孝祥,1995年畢業於北京理工大學,獲學士學位。畢業後在計算機專業的專家指導下,熟練掌握了VC,VB,JAVA等程式語言及工具,潛心研究計算機軟體開發,曾先後在國家863計畫CIMS項目組、泰克威爾公司、摩托羅拉公司、清華萬博的中國教育熱線網站從事軟、硬體開發。期間,兼職某計算機培訓學校VC++培訓講師。
圖書目錄
目錄
第1章Java開發前奏 1
1.1Java虛擬機及Java的跨平台原理 2
1.2Java開發環境的搭建 3
1.2.1環境變數的介紹 5
1.2.2如何查看系統環境變數 5
1.2.3如何設定系統環境變數 7
1.3體驗Java編程的過程 9
腳下留心:運行Java程式的注意事項 11
1.4classpath的設定 12
腳下留心:配置Java環境變數時應忌諱的問題 13
多學兩招:1.如何快速得到路徑字元串 13
2.如何在命令行視窗中拷貝和粘帖 13
3.如何在命令行視窗中快速進入某個目錄 14
1.5有效利用Java的文檔幫助 16
1.6JVM(虛擬機)的運行過程 18
1.7垃圾回收器 19
1.8反編譯工具的介紹 21
1.8.1JAD 21
1.8.2FrontEnd 21
第2章Java編程基礎 24
2.1Java基本語法格式 24
2.1.1Java代碼的落腳點 24
2.1.2Java是嚴格區分大小寫的 24
2.1.3Java是一種自由格式的語言 24
腳下留心:1.字元串的斷行問題 25
2.分號(;)問題 25
2.1.4Java程式的注釋 25
腳下留心:程式注釋中應注意的一些問題 26
不得不說:養成良好的編程風格 26
2.1.5Java中的標識符 26
2.1.6Java的關鍵字 26
2.1.7Java中的常量 27
多學兩招:特殊字元的表示 28
2.2變數及變數的作用域 29
2.2.1變數的概念 29
2.2.2Java的變數類型 29
獨家見解:數值所代表的意義 30
2.2.3注意變數的有效取值範圍 31
2.2.4基本數據類型之間的轉換 31
獨家見解:輕鬆理解類型轉換 33
2.2.5表達式的數據類型自動提升 33
多學兩招:字元串中的加號(+)問題 35
2.2.6變數的作用域 35
腳下留心:Java與C/C++的區別 36
2.2.7局部變數的初始化 36
2.3函式與函式的重載 37
2.3.1函式 37
獨家見解:如何理解函式返回值類型為void的情況 40
2.3.2函式的參數傳遞過程 42
多學兩招:形式參數的作用 42
2.3.3函式的重載 42
2.4Java中的運算符 44
2.4.1算術運算符 44
多學兩招:兩個經典算法 45
2.4.2賦值運算符 45
腳下留心:“==”運算符的注意事項 46
2.4.3比較運算符 46
2.4.4邏輯運算符 47
2.4.5位運算符 48
多學兩招:移位的特殊功能 50
腳下留心:使用移位運算符應注意的事項 50
2.4.6運算符的優先權 51
2.5程式的流程控制 52
2.5.1順序結構 52
2.5.2if條件語句 52
多學兩招:一種更簡單的寫法 54
2.5.3switch選擇語句 57
2.5.4while循環語句 58
腳下留心:while表達式的注意事項 59
2.5.5dowhile語句 60
2.5.6for循環語句 61
多學兩招:無限循環 63
2.5.7break與continue語句 63
2.6數組 64
2.6.1數組的基本概念 64
多學兩招:記憶體分配的奧秘 65
2.6.2數組的靜態初始化 67
2.6.3使用數組時要注意的問題 68
2.6.4多維數組 70
2.6.5一些與數組操作相關的函式 72
第3章面向對象(上) 75
3.1面向對象的概念 75
3.1.1面向過程 75
3.1.2面向對象 75
3.2類與對象 76
3.2.1類的定義 77
腳下留心:成員變數與局部變數同名的問題 77
3.2.2對象的產生與使用 78
3.2.3對象的比較 81
多學兩招:怎樣比較兩個數組對象的內容是否相等 83
3.2.4匿名對象 83
3.2.5實現類的封裝性 84
指點迷津:良好的封裝 87
多學兩招:Private的試驗 87
3.3構造函式 88
3.3.1構造函式的定義與作用 88
腳下留心:如何理解構造函式的返回值 89
3.3.2構造方法的重載 90
3.3.3構造方法的一些細節 93
3.4this引用句柄 95
3.5與垃圾回收有關的知識 100
3.5.1finalize方法 100
3.5.2System.gc的作用 102
3.6函式的參數傳遞 103
3.6.1基本數據類型的參數傳遞 103
3.6.2引用數據類型的參數傳遞 103
3.7Static關鍵字 107
3.7.1靜態變數 107
3.7.2靜態方法 110
3.7.3靜態代碼塊 111
3.7.4單態設計模式 112
3.7.5理解main方法的語法 113
3.8內部類 114
3.8.1類中定義的內部類 115
指點迷津:何時使用內部類 116
3.8.2內部類如何被外部引用 119
3.8.3方法中定義的內部類 120
3.9使用Java的文檔注釋 121
第4章面向對象(下) 126
4.1類的繼承 126
4.1.1繼承的特點 126
4.1.2子類對象的實例化過程 129
4.1.3覆蓋父類的方法 131
4.1.4final關鍵字 133
多學兩招:Java中的常量 134
4.2抽象類與接口 134
4.2.1抽象類 134
4.2.2接口(interface) 135
4.3對象的多態性 137
4.3.1對象的類型轉換 137
4.3.2Object類 141
4.3.3面向對象的多態性 142
獨家見解:接口的概念 144
4.3.4匿名內部類 146
4.4異常 148
4.4.1了解異常 148
4.4.2try…catch語句 149
腳下留心:發揮try…catch語句的作用 150
4.4.3throws關鍵字 150
4.4.4自定義異常與Throw關鍵字 152
多學兩招:如何實現程式的跳轉 155
4.4.5finally關鍵字 155
4.4.6異常的一些使用細節 157
4.4.7Java引入異常的好處 157
4.5包 158
4.5.1package語句及套用 158
指點迷津:1.類名相同不等同於同一類 161
2.同名包的目錄位置 161
腳下留心:不要被舊檔案所迷惑 162
4.5.2import語句及套用 163
多學兩招:父包和子包之間的關係 165
4.5.3JDK中的常用包 166
4.6訪問控制 167
4.6.1類成員的訪問控制 167
4.6.2類的訪問控制 168
多學兩招:類名與檔案名稱 168
4.6.3Java的命名習慣 168
4.7使用jar檔案 168
4.7.1jar檔案包 169
4.7.2jar命令詳解 169
4.7.3使用WinRAR對jar檔案進行查看 172
指點迷津:1.注意jar檔案的相對路徑問題 173
2.快速查看jar包中的類 174
第5章多執行緒 176
5.1如何創建與理解執行緒 176
5.1.1了解執行緒概念 176
5.1.2用Thread類創建執行緒 176
5.1.3使用Runnable接口創建多執行緒 180
5.1.4兩種實現多執行緒方式的對比分析 181
5.1.5後台執行緒與聯合執行緒 184
5.1.6多執行緒在實際中的套用 187
5.2多執行緒的同步 189
5.2.1執行緒安全問題 189
5.2.2同步代碼塊 191
5.2.3同步函式 194
5.2.4代碼塊與函式間的同步 195
多學兩招:同步的注意事項 199
5.2.5死鎖問題 200
5.3執行緒間的通信 202
5.3.1問題的引出 202
5.3.2問題如何解決 203
5.4執行緒生命的控制 211
5.4.1執行緒的生命周期 211
5.4.2如何控制執行緒的生命 212
第6章JavaAPI 215
6.1理解API的概念 215
6.2工具軟體的介紹與使用 216
6.3String類和StringBuffer類 217
腳下留心:內容相同,對象不同 218
6.4基本數據類型的對象包裝類 221
6.5集合類 223
多學兩招:對List接口的對象進行排序 227
6.6Hashtable與Properties類 227
6.7System類與Runtime類 232
6.7.1System類 232
多學兩招:檢測程式段運行的時間 232
6.7.2Runtime類 234
6.8Date與Calendar,DateFormat類 235
6.9Math與Random類 237
6.10學習API的方法 238
第7章IO/輸入輸出 239
7.1File類 239
7.2RandomAccessFile類 241
7.3節點流 244
7.3.1理解流的概念 244
7.3.2InputStream與OutputStream 245
指點迷津:1.如何選擇輸入與輸出 245
2.為什麼要調用close方法 245
多學兩招:IO中的緩衝區 246
7.3.3FileInputStream與FileOutputStream 247
7.3.4Reader與Writer 248
獨家見解:隱含的緩衝區 250
7.3.5PipedInputStream與PipedOutputStream 250
獨家見解:管道流類的作用 252
7.3.6ByteArrayInputStream與ByteArrayOutputStream 252
7.3.7IO程式代碼的復用 254
7.4過濾流與包裝類 256
7.4.1理解包裝類的概念與作用 256
7.4.2BufferedInputStream與BufferedOuputStream 258
腳下留心:使用mark時應考慮的問題 258
7.4.3DataInputStream與DataOutputStream 259
7.4.4PrintStream 261
指點迷津:何謂格式化輸出 262
7.4.5ObjectInputStream與ObjectOutputStream 262
指點迷津:如何處理字元亂碼問題 265
7.4.6位元組流與字元流的轉換 265
7.4.7IO包中的類層次關係圖 267
7.5IO中的高級套用 269
7.5.1字元集的編碼問題 269
指點迷津:如何處理字元亂碼問題 277
7.5.2Decorator設計模式 280
7.5.3Java虛擬機讀寫其他進程的數據 281
多學兩招:提高程式的運行效率 284
第8章圖形用戶界面GUI(一) 286
8.1初識AWT 286
8.2AWT執行緒 287
8.3AWT事件處理 288
8.3.1事件處理機制 288
8.3.2用事件監聽器處理事件 290
指點迷津:同一事件源的不同表示類型 292
8.3.3事件適配器 293
8.3.4事件監聽器的匿名內置類實現方式 296
8.3.5事件處理的多重運用 297
8.3.6高級事件處理 298
8.4GUI組件上的圖形操作 301
8.4.1Graphics類 301
指點迷津:如何列印字元文本 304
獨家見解:JDK的失誤 304
8.4.2組件重繪 304
8.4.3圖像操作 308
8.4.4雙緩衝的技術 312
第9章圖形用戶界面GUI(二) 315
9.1常用AWT組件 315
9.1.1Component類 315
9.1.2Canvas 316
9.1.3Checkbox 318
9.1.4Choice 321
9.1.5選單 322
9.1.6Container類 325
9.1.7Window類 326
9.1.8Dialog 326
9.1.9Panel類 329
9.1.10ScrollPane類 329
9.2布局管理器 331
9.2.1了解布局管理 331
9.2.2BorderLayout 332
9.2.3FlowLayout 333
9.2.4GridLayout 334
9.2.5CardLayout 335
9.2.6GridBagLayout 337
9.2.7取消布局管理器 337
9.3Swing 339
9.3.1Swing介紹 339
9.3.2從AWT過渡到Swing 339
9.3.3JFrame 340
9.3.4JScrollPane 341
9.3.5對話框 342
9.3.6計算器界面的程式實現 343
9.3.7BoxLayout布局管理器 345
第10章Applet 347
10.1瀏覽器怎樣顯示網頁 347
10.2瀏覽器處理網頁腳本代碼的過程 347
10.3瀏覽器怎么處理Applet 348
10.4Applet類及其方法 351
指點迷津:destroy()與finalize()的區別 353
10.5一個顯示動畫的Applet的程式 354
10.5.1URL類 356
10.5.2update方法 358
多學兩招:學會容器與外掛程式的設計思想 359
10.6關於Applet的一些細節 359
10.6.1Applet的運行環境 359
10.6.2Applet程式中如何使用控制台輸出 360
10.6.3Applet程式中需要注意的問題 361
10.6.4Applet標記 362
腳下留心:參數名的大小寫問題 364
10.6.5OBJECT標記 364
腳下留心:使用HTMLConverter工具的注意事項 367
10.7驗證Applet對象在客戶端如何存在 367
第11章網路編程 369
11.1網路編程的基礎知識 369
11.1.1TCP/IP網路程式的IP位址和連線埠號 369
11.1.2UDP與TCP 370
11.1.3Socket 370
11.2Java編寫UDP網路程式 372
11.2.1DatagramSocket 372
11.2.2DatagramPacket 373
11.2.3InetAddress 373
11.2.4最簡單的UDP程式 374
指點迷津:UDP數據的傳送原理 375
多學兩招:中文信息的處理 376
11.2.5用UDP編寫聊天程式 376
11.3Java編寫TCP網路程式 382
11.3.1ServerSocket 383
11.3.2Socket 384
11.3.3簡單的TCP伺服器程式 385
指點迷津:TCP程式的運行 386
多學兩招:使用telnet測試TCP客戶端程式 388
11.3.4完善的TCP伺服器程式模型 388
指點迷津:伺服器回送結果與傳送字元不一致 390
11.3.5TCP客戶端程式 391
多學兩招:利用netstat命令,查看程式使用的連線埠號 392
指點迷津:1.怎樣理解應用程式協定和網路通信協定的關係 393
2.怎樣區分ASP、JSP與網路編程的概念 394