Java 編程技術大全 (套裝上下冊)
內容描述
本書主要面向零基礎讀者,用實例引導讀者學習,深入淺出地介紹Java的相關知識和實戰技能。
本書第Ⅰ篇“基礎知識”主要講解Java開發環境搭建、Java程序要素,並逐一介紹常量、變量、運算符、表達式、語句、流程控制、數組、枚舉、類、對象以及方法等;第Ⅱ篇“核心技術”主要介紹類的封裝、繼承、多態,並逐一介紹抽象類、接口、Java常用類庫以及異常的捕獲與處理等;第Ⅲ篇“高級應用”主要介紹多線程、文件I/O操作、GUI編程、Swing GUI編程、Java Web、常用設計框架以及Android編程基礎等;第Ⅳ篇“項目實戰”主要介紹智能電話回撥系統、理財管理系統、我的飯票網以及Hadoop下的數據處理等。
本書提供了與圖書內容全程同步的教學視頻。此外,還贈送大量相關學習資料,以便讀者擴展學習。
本書適合任何想學習Java的初學者,無論初學者是否從事電腦相關行業,是否接觸過Java,均可通過對本書內容的學習快速掌握Java的開發方法和技巧。
目錄大綱
上冊
第0章Java學習指南
0.1 Java為什麼重要002
0.2 Java簡史—給我們帶來的一點思考003
0.3 Java應用領域和前景007
0.4 Java學習路線圖009
第Ⅰ篇基礎知識
第1章小荷才露尖尖角——Java開發環境搭建
1.1 Java開發環境013
1.2安裝Java開發工具箱013
1.2.1下載JDK 013
1.2.2安裝JDK 016
1.3 Java環境變量的配置017
1.3.1理解環境變量017
1.3.2 JDK中的3個環境變量018
1.4享受安裝成果—開發第1個Java程序022
1.5 Eclipse的使用023
1.5.1 Eclipse概述023
1.5.2創建Java項目025
1.5.3創建Java類文件026
1.5.4在代碼編輯器中編寫Java程序代碼027
1.5.5運行Java程序029
1.6探秘Java虛擬機029
1.7高手點撥030
1.8實戰練習032
第2章初識廬山真面目——Java程序要素概覽
2.1一個簡單的例子034
2.2感性認識Java程序035
2.2.1 Java程序的框架036
2.2.2標識符037
2.2.3關鍵字037
2.2.4註釋038
2.2.5變量039
2.2.6數據類型040
2.2.7運算符和表達式040
2.2.8類041
2.2.9輸入與輸出041
2.3程序的檢測044
2.3.1語法錯誤044
2.3.2語義錯誤045
2.4提高程序的可讀性046
2.5高手點撥047
2.6實戰練習047
第3章九層之台,起於壘土——Java編程基礎
3.1常量與變量050
3.1.1常量的聲明與使用050
3.1.2變量的聲明與使用051
3.2基本數據類型055
3.2.1數據類型的意義055
3.2 .2整數類型056
3.2.3浮點類型059
3.2.4字符類型060
3.2.5布爾類型062
3.3數據類型的轉換063
3.3.1自動類型轉換063
3.3.2強制類型轉換064
3.4高手點撥065
3.5實戰練習066
第4章基礎編程元素——運算符、表達式、語句與流程控制
4.1運算符070
4.1.1賦值運算符070
4.1.2一元運算符070
4.1.3算術運算符072
4.1.4邏輯運算符073
4.1.5位運算符076
4.1.6三元運算符077
4.1.7關係運算符與if語句078
4.1.8遞增與遞減運算符079
4.1.9括號運算符080
4.2表達式080
4.2.1算術表達式與關係表達式081
4.2.2邏輯表達式與賦值表達式082
4.2.3表達式的類型轉換083
4.3語句084
4.3.1語句中的空格084
4.3.2空語句085
4.3.3聲明語句與賦值語句086
4.4程序的控制邏輯086
4.4.1順序結構087
4.4.2分支結構088
4.4.3循環結構088
4.5選擇結構088
4.5.1 if語句089
4.5.2 if…else語句089
4.5.3 if…else if…else語句090
4.5.4多重選擇——switch語句091
4.6循環結構093
4.6.1 while循環093
4.6.2 do…while循環095
4.6.3 for循環097
4.6.4 foreach循環098
4.7循環的跳轉099
4.7.1 break語句099
4.7.2 continue語句101
4.7.3 return語句104
4.8高手點撥105
4.9實戰練習106
第5章常用的數據結構——數組與枚舉
5.1理解數組108
5.2一維數組111
5.2.1一維數組的聲明與內存的分配111
5.2.2數組中元素的表示方法112
5.2.3數組元素的使用113
5.3二維數組116
5.3.1二維數組的聲明與賦值116
5.3.2二維數組元素的引用及訪問117
5.4枚舉簡介118
5.5 Java中的枚舉118
5.5.1常見的枚舉定義方法118
5.5.2在程序中使用枚舉119
5.5.3在switch語句中使用枚舉120
5.6高手點撥121
5.7實戰練習121
第6章面向對象設計的核心——類和對象
6.1理解面向對象程序設計124
6.1.1結構化程序設計簡介124
6.1.2面向對象程序設計簡介124
6.1.3面向對象程序設計的基本特徵125
6.1.4面向對象編程和麵向過程編程的比較126
6.2面向對象的基本概念127
6.2 .1類127
6.2.2對象128
6.2.3類和對象的關係128
6.3類的聲明與定義129
6.3.1類的聲明129
6.3.2類的定義130
6.4類的屬性132
6.4.1屬性的定義132
6.4.2屬性的使用132
6.5對象的聲明與使用135
6.5.1對象的聲明135
6.5.2對象的使用136
6.5.3匿名對象138
6.5.4對象的比較139
6.5.5對像數組的使用141
6.6 this關鍵字的使用143
6.7 static關鍵字的使用145
6.8 final關鍵字的使用149
6.9高手點撥150
6.10實戰練習152
第7章重複調用的代碼塊——方法
7.1方法的基本定義154
7.2方法的使用156
7.3方法中的形參與實參157
7.4方法的重載158
7.5構造方法161
7.5.1構造方法簡介161
7.5.2構造方法的重載163
7.5.3構造方法的私有化167
7.6在方法內部調用方法171
7.7代碼塊172
7.7.1普通代碼塊172
7.7.2構造代碼塊173
7.7.3靜態代碼塊175
7.8 static方法177
7.8.1自定義static方法177
7.8.2 static主方法178
7.9方法與數組180
7.9.1數組引用傳遞180
7.9. 2讓方法返回數組183
7.10包的概念及使用185
7.10.1包的基本概念185
7.10.2包的導入186
7.10.3 JDK中常見的包187
7.11高手點撥188
7.12實戰練習188
第Ⅱ篇核心技術
第8章面向對象設計的精華——類的封裝、繼承與多態
8.1面向對象的三大特點191
8.1.1封裝的含義191
8.1.2繼承的含義191
8.1.3多態的含義192
8.2封裝的實現194
8.2.1 Java訪問權限修飾符194
8.2.2封裝問題引例194
8.2.3類的封裝實例195
8.3繼承的實現202
8.3.1繼承的基本概念202
8.3.2繼承問題的引入202
8.3.3繼承實現代碼復用204
8.3.4繼承的限制205
8.4深度認識類的繼承208
8.4.1子類對象的實例化過程208
8.4.2 super關鍵字的使用210
8.4.3限制子類的訪問213
8.5覆寫216
8.5.1屬性的覆蓋216
8.5.2方法的覆寫217
8.5.3關於覆寫的註解——@Override 221
8.6多態的實現223
8.6.1多態的基本概念223
8.6.2方法多態性225
8.6.3對像多態性225
8.6.4隱藏230
8.7高手點撥231
8.8實戰練習234
第9章凝練才是美——抽像類、接口與內部類
9.1抽像類236
9.1.1抽像類的定義236
9.1.2抽像類的使用236
9.2接口240
9.2.1接口的基本概念240
9.2.2使用接口的原則241
9.2.3接口的作用——Java的回調機制248
9.3內部類253
9.3.1內部類的基本定義253
9.3.2在方法中定義內部類255
9.4匿名內部類256
9.5匿名對象258
9.6高手點撥259
9.7實戰練習262
第10章更靈活的設計——泛型
10.1泛型的概念264
10.2泛型類的定義264
10.3泛型方法的定義265
10.4泛型接口的定義265
10.5泛型的使用限制和通配符的使用266
10.5.1泛型的使用限制266
10.5.2通配符的使用267
10.6泛型的繼承和實現268
10.7高手點撥269
10.8實戰練習270
第11章更強大和方便的功能——註解
11.1註解概述272
11.2常用內置註解272
11.3自定義註解274
11.4通過反射訪問註解信息277
11.5高手點撥280
11.6實戰練習282
第12章設計實踐——常用的設計模式
12.1設計模式概述284
12.1.1設計模式的背景284
12.1.2設計模式的分類284
12.2創建型模式285
12.2.1單例設計模式285
12.2.2多例設計模式288
12.2.3工廠模式290
12.3結構型模式295
12.3. 1代理設計模式296
12.3.2橋接設計模式299
12.4行為型模式307
12.4.1行為型模式概述307
12.4.2責任鏈設計模式307
12.5高手點撥310
12.6實戰練習310
第13章存儲類的倉庫—— Java常用類庫
13.1 API概念312
13.2基本數據類型的包裝類312
13.2.1裝箱與拆箱313
13.2.2基本數據類型與字符串的轉換315
13.3 String類317
13.3.1字符串類的聲明317
13.3.2 String類中常用的方法319
13.4 System類與Runtime類321
13.4.1 System類321
13.4.2 Runtime類324
13.5日期操作類326
13.5.1日期類326
13.5.2日期格式化類328
13.6正則表達式329
13.6.1正則的引出329
13.6.2正則標記331
13.6.3利用String進行正則操作332
13.7 Math與Random類334
13.7.1 Math類的使用334
13.7.2 Random類的使用335
13.8高手點撥337
13.9實戰練習338
第14章防患於未然——異常的捕獲與處理
14.1異常的基本概念340
14.1.1為何需要異常處理340
14.1.2簡單的異常範例341
14.1.3異常的處理342
14.1.4異常處理機制的小結347
14.2異常類的處理流程348
14.3 throws關鍵字348
14.4 throw關鍵字350
14.5異常處理的標準格式350
14.6 RuntimeException類352
14.7編寫自己的異常類353
14.8高手點撥354
14.9實戰練習354
下冊
第Ⅲ篇高級應用
第15章齊頭並進,並發任務的處理——多線程
15.1感知多線程357
15.1.1現實生活中的多線程357
15.1.2進程與線程357
15.1.3多線程的優勢358
15.2體驗多線程359
15.2.1通過繼承Thread類實現多線程360
15.2.2通過Runnable接口實現多線程362
15.2.3兩種多線程實現機制的比較364
15.2.4 Java 8中運行線程的新方法367
15.3線程的狀態369
15.4線程操作的一些方法373
15.4.1取得和設置線程的名稱373
15.4.2判斷線程是否啟動376
15.4.3守護線程與setDaemon方法377
15.4.4線程的聯合378
15.4.5如何中斷一個線程380
15.5多線程的同步383
15.5.1同步問題的引出383
15.5.2同步代碼塊385
15.5.3同步方法386
15.5.4死鎖388
15.6線程間通信391
15.6.1問題的引出391
15.6.2問題如何解決392
15.7線程池技術及其應用400
15.7.1線程池的概念400
15.7.2線程池的用法401
15.8高手點撥407
15.9實戰練習408
第16章文件I/O操作
16.1輸入/輸出的重要性410
16.2讀寫文本文件411
16.2.1 File類411
16.2.2文本文件的操作414
16.2.3字符編碼問題417
16.3文本的輸入和輸出420
16.3.1讀入文本單詞420
16.3.2讀入單個字符421
16.3.3判斷字符分類的方法421
16.3.4讀入一行文本422
16.3.5將字符轉換為數字423
16.4字節流與字符流424
16.4.1字節輸出流——OutputStream 425
16.4.2字節輸入流——InputStream 425
16.4.3字符輸出流——Writer 428
16.4.4字符輸入流——Reader 429
16.4.5字節流與字符流的轉換431
16.5命令行參數的使用434
16.5.1 System類對I/O的支持434
16.5.2 Java命令行參數解析434
16.6高手點撥438
16.7實戰練習438
第17章數據持久化方法——對象序列化
17.1對象序列化的基本概念440
17.2序列化與對象輸出流ObjectOutputStream 441
17.3反序列化與對象輸入流ObjectInputStream 442
17.4序列化對象的版本號serialVersionUID 444
17.5 transient關鍵字445
17.6 Externalizable接口445
17.7高手點撥448
17.8實戰練習448
第18章絢麗多彩的圖形界面——GUI編程
18.1 GUI概述450
18.2 GUI與AWT 450
18.3 AWT容器451
18.3.1 Frame窗口452
18.3.2 Panel面板456
18.3.3佈局管理器457
18.4 AWT常用組件462
18.4.1按鈕與標籤組件463
18.4.2 TextField文本域465
18.4.3圖形控件467
18.5事件處理468
18.5.1事件處理的流程468
18.5.2常用的事件469
18.5.3小案例—會動的烏龜474
18.6高手點撥477
18.7實戰練習478
第19章Swing GUI編程
19.1 Swing概述480
19.2 Swing的基本組件481
19.2.1 JTable表格481
19.2.2 JComboBox下拉列錶框483
19.2.3組件常用方法485
19.3 Swing的應用486
19.3.1小案例——簡易的學籍管理系統486
19.3.2小案例——簡易隨機驗證碼的生成489
19.4高手點撥492
19.5實戰練習492
第20章打通數據的互聯——Java Web初步
20.1 Web開發的發展歷程494
20.1.1靜態Web處理階段494
20.1.2動態Web處理階段495
20.2 JSP的運行環境497
20.2.1安裝Tomcat 497
20.2.2配置虛擬目錄500
20.2.3編寫第1個JSP程序502
20.2.4 Tomcat執行流程503
20.3基礎語法503
20.3.1顯式註釋與隱式註釋504
20.3.2 Scriptlet 505
20.3.3 Page指令507
20.3.4包含指令509
20.3.5跳轉指令513
20.4高手點撥515
20.5實戰練習516
第21章JSP進階——內置對象與Servlet
21.1內置對象518
21.1.1 request對象518
21.1.2 response對象521
21.1.3 session對象528
21.1.4其他內置對象532
21.2 Servlet 535
21.2.1 Servlet簡介535
21.2.2第1個Servlet程序535
21.2.3 Eclipse中的Servlet配置539
21.3高手點撥545
21.4實戰練習546
第22章高效開發的利器——常用MVC設計框架
22.1框架的內涵548
22.2 Struts開發基礎549
22.2.1 Struts簡介549
22.2.2 MVC的基本概念550
22.2.3 Struts 2的工作原理550
22.2.4下載Struts 2 -類庫551
22.2.5從Struts 2的角度理解MVC 552
22.2.6第1個Struts 2 -實例553
22.2.7運行測試StrutsDemo工程562
22.2.8小結563
22.3高手點撥564
22.4實戰練習564
第23章高效開發的利器——Spring框架
23.1 Spring快速上手566
23.1.1 Spring基本知識566
23.1.2 Spring框架模塊566
23.1.3 Spring開發準備567
23.1.4 Spring框架配置567
23.2 Spring開發實例570
23.3 Spring和Struts結合575
23.4高手點撥576
23.5實戰練習576
第24章讓你的數據庫記錄像操作變量一樣方便——Hibernate
24.1 Hibernate開發基礎578
24.2 Hibernate開發準備578
24.2.1下載Hibernate開發包578
24.2.2在Eclipse中部署Hibernate開發環境579
24.2.3安裝部署MySQL驅動579
24.3 Hibernate開發實例580
24.3. 1開發Hibernate項目的完整流程581
24.3.2創建HibernateDemo項目581
24.3.3創建數據表USER 583
24.3.4編寫POJO映射類User.java 584
24.3.5編寫映射文件User.hbm.xml 586
24.3.6編寫hibernate.cfg.xml配置文件586
24.3.7編寫輔助工具類HibernateUtil.Java 588
24.3.8編寫DAO接口UserDAO.java 590
24.3.9編寫DAO層實現類591
24.3.10編寫測試類UserTest.java 593
24.4高手點撥596
24.5實戰練習596
第25章移動互聯的精彩——Android編程基礎
25.1 Android簡介598
25.1.1 Android系統架構598
25.1.2 Android已發布的版本598
25.1.3 Android應用開發特色599
25.2搭建開發環境599
25.2.1準備所需要的軟件599
25.2.2開發環境的搭建599
25.3創建第1個Android項目601
25.3.1創建HelloWorld項目601
25.3.2運行HelloWorld 602
25.3.3解析第1個Android程序603
25.4詳解基本佈局605
25.4.1線性佈局606
25.4.2相對佈局610
25.4.3幀佈局613
25.4.4 TableLayout 614
25.5常見控件的使用方法616
25.5.1 TextView 616
25.5.2 EditText 617
25.5.3 Button 619
25.5.4 ProgressDialog 622
25.5.5 ImageView 624
25.6 Activity詳細介紹624
25.6.1 Activity生命週期625
25.6.2 Activity狀態625
25.6.3 Activity啟動模式626
25.7高手點撥626
25.8實戰練習626
第Ⅳ篇項目實戰
第26章Android項目實戰— —智能電話回撥系統
26.1系統概述629
26.1.1背景介紹629
26.1.2運行程序629
26.1.3系統需求分析630
26.1.4詳細功能設計630
26.2系統實現630
26.2.1主界面630
26.2.2修改密碼632
26.2.3意見反饋634
26.3項目功能用到的知識點講解638
26.3.1讀取通訊錄638
26.3.2讀取聯繫人頭像642
26.3.3讀取短信642
26.4高手點撥644
26.5實戰練習644
第27章Android進階項目實戰——理財管理系統
27.1系統概述646
27.1.1背景介紹646
27.1.2運行程序646
27.1.3系統需求分析647
27.2系統數據存儲的設計和實現647
27.2.1數據分析和設計647
27.2.2數據庫設計和實現649
27.2.3 SharedPreferences存儲方式655
27.2.4文件存儲方式656
27.3系統詳細設計和實現657
27.3.1歡迎界面模塊設計和實現657
27.3.2用戶註冊登錄模塊設計和實現660
27.3.3隨時查看記錄模塊設計和實現669
27.3.4查看記錄模塊設計和實現674
27.3.5預算模塊設計和實現680
27.3.6寫心情模塊設計和實現684
27.4系統開發經驗和技巧694
27.4.1項目經驗694
27.4.2項目技巧694
27.5高手點撥694
27.6實戰練習694
第28章Java Web項目實戰——我的飯票網
28.1系統分析696
28.1.1需求分析696
28.1.2編寫項目計劃書696
28.2系統設計697
28.2.1系統目標697
28.2.2系統功能設計697
28.3數據庫設計697
28.3.1功能分析697
28.3.2基本表設計698
28.4用戶註冊模塊設計701
28.4.1用戶註冊模塊概述702
28.4.2與用戶註冊有關的數據庫連接及操作類702
28.4.3用戶註冊界面設計708
28.4.4用戶註冊事件處理頁面711
28.5用戶登錄模塊設計713
28.5.1用戶登錄模塊概述713
28.5.2與用戶登錄有關的數據庫連接及操作類713
28.5.3用戶登錄界面設計714
28.5.4用戶登錄驗證處理頁面716
28.6用戶主頁面模塊設計718
28.6.1用戶主頁面模塊概述718
28.6.2用戶主頁面有關的數據庫連接及操作類718
28.6.3用戶主頁面界面設計723
28.7高手點撥726
28.8實戰練習726
第29章Java Web項目實戰——客戶關係管理項目
29.1系統概述728
29.1.1系統開發背景728
29.1.2項目開發環境的搭建728
29.2系統分析和設計729
29.2.1系統需求分析729
29.2.2數據庫分析和設計730
29.3系統架構分析和設計734
29.3.1分層結構和MVC模式734
29.3.2模式一轉為模式二的過程:登錄例子734
29.3.3程序的分層及層次間的關係735
29.3.4接口的設計和實現736
29.3.5 VO的設計和實現740
29.4用戶登錄模塊設計742
29.4.1模塊需求細化742
29.4.2模塊相關數據庫實現細節743
29.4.3用戶登錄界面設計743
29.4.4模塊詳細設計和實現746
29.5客戶管理模塊設計750
29.5.1模塊需求細化750
29.5.2模塊相關數據庫實現細節751
29.5.3客戶管理界面設計751
29.5.4模塊詳細設計和實現757
29.6公告管理模塊設計766
29.6.1模塊需求細化766
29.6.2模塊相關數據庫實現細節766
29.6 .3公告管理界面設計767
29.6.4模塊詳細設計和實現771
29.7高手點撥780
29.8實戰練習780
第30章大數據項目實戰——Hadoop下的數據處理
30.1認識Hadoop 782
30.1.1初識Hadoop 782
30.1 .2 Hadoop平台構成783
30.2理解MapReduce編程範式784
30.3第1個Hadoop案例——WordCount代碼詳解785
30.3.1 WordCount基本流程785
30.3.2 WordCount代碼詳解786
30.3.3運行WordCount 790
30.4面向K-Means聚類算法的Hadoop實踐796
30.4.1 K-Means聚類算法簡介796
30.4.2基於MapReduce的K-Means算法實現798
30.5高手點撥806
30.6實戰練習806
附錄全分佈式Hadoop集群的構建
安裝CentOS 7 807
安裝Java並配置環境變量808
安裝Hadoop 810
下載Hadoop包810
安裝Hadoop 811
Hadoop的運行模式811
Hadoop集群構建811
在Windows操作系統下克隆虛擬機812
配置虛擬機MAC地址812
設置靜態IP地址813
安裝和配置SSH服務815
安裝SSH 815
SSH免密碼登錄815
修改hosts文件818
虛擬機的同步配置818
SSH免密碼登錄配置過程819
全分佈模式下配置Hadoop 819
同步配置文件824
創建所需目錄825
關閉防火牆825
格式化文件系統825
啟動Hadoop守護進程825
驗證全分佈模式826
默認配置文件所在位置826
關閉Hadoop 826
作者介紹
作者:魔樂科技(MLDN)軟件實訓中心
張玉宏,工學博士,科普作家,阿里云云棲社區認證專家、專欄作家,暢銷書《品味大數據》作者,電氣和電子工程師協會(IEEE)會員,國際計算機協會(ACM)會員,中國計算機協會(CCF)會員。2012年畢業於電子科技大學,2009—2011年在美國西北大學做訪問學者,現執教於河南工業大學。主要研究方向為高性能計算、大數據。發表SCI/EI論文10餘篇,出版國內外學術專著5部。
周喜平,教授,河南省教師,河南省教育廳學術帶頭人,河南省高等學校計算機類專業教學指導委員會委員。研究方向為軟件工程、軟件開發技術等。發表論文30餘篇,出版專著5部,主持和參與科研項目20餘項,其中使用Java實現的項目包括“電力及施工企業固定資產管理系統”“惠農資金管理系統”“地市級居民醫療保險信息
管理系統” “純電動汽車高並發數據採集平台”“基於標準分的教師評教系統”等。