《Java從入門(mén)到精通(精粹版)》以零基礎(chǔ)講解為宗旨,用實(shí)例引導(dǎo)讀者學(xué)習(xí),深入淺出地介紹了Java的相關(guān)知識(shí)和實(shí)戰(zhàn)技能。
《Java從入門(mén)到精通(精粹版)》第Ⅰ篇【基礎(chǔ)知識(shí)】主要講解Java開(kāi)發(fā)環(huán)境搭建、Java程序要素、常量、變量、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、語(yǔ)句、流程控制、數(shù)組、枚舉、類、對(duì)象以及方法等;第Ⅱ篇【核心技術(shù)】主要介紹類的封裝、繼承、多態(tài)、抽象類、接口、Java常用類庫(kù)以及異常的捕獲與處理等;第Ⅲ篇【高級(jí)應(yīng)用】主要介紹多線程、文件I/O操作、GUI編程、數(shù)據(jù)庫(kù)編程、Java Web、常用設(shè)計(jì)框架以及Android編程基礎(chǔ)等;第Ⅳ篇【項(xiàng)目實(shí)戰(zhàn)】主要介紹智能電話回?fù)芟到y(tǒng)、飯票網(wǎng)以及Hadoop下的數(shù)據(jù)處理等。
《Java從入門(mén)到精通(精粹版)》提供了與圖書(shū)內(nèi)容全程同步的教學(xué)錄像。此外,還贈(zèng)送了大量相關(guān)學(xué)習(xí)資料,以便讀者擴(kuò)展學(xué)習(xí)。
《Java從入門(mén)到精通(精粹版)》適合任何想學(xué)習(xí)Java的讀者,無(wú)論您是否從事計(jì)算機(jī)相關(guān)行業(yè),是否接觸過(guò)Java,均可通過(guò)學(xué)習(xí)本書(shū)快速掌握J(rèn)ava的開(kāi)發(fā)方法和技巧。
本書(shū)特色
*零基礎(chǔ)、入門(mén)級(jí)的講解
無(wú)論讀者是否從事計(jì)算機(jī)相關(guān)行業(yè),是否接觸過(guò)Java,是否使用Java開(kāi)發(fā)過(guò)項(xiàng)目,都能從本書(shū)受益。
*實(shí)用、專業(yè)的范例和項(xiàng)目
本書(shū)結(jié)合實(shí)際工作中的范例,逐一講解Java的各種知識(shí)和技術(shù),還以世紀(jì)開(kāi)發(fā)項(xiàng)目來(lái)總結(jié)本書(shū)所學(xué)內(nèi)容,幫助讀者在實(shí)戰(zhàn)中掌握知識(shí),輕松擁有項(xiàng)目經(jīng)驗(yàn)。
*隨時(shí)監(jiān)測(cè)自己的學(xué)習(xí)成果
每章首頁(yè)給出了本章要點(diǎn),以便讀者明確學(xué)習(xí)方向。每章的實(shí)戰(zhàn)練習(xí)則根據(jù)所在章的知識(shí)點(diǎn)精心設(shè)計(jì)而成,讀者可以隨時(shí)自我檢測(cè),鞏固所學(xué)知識(shí)。
*細(xì)致入微、貼心提示
本書(shū)在講解過(guò)程中使用了提示注意技巧等小欄目,幫助讀者在學(xué)習(xí)過(guò)程中更清楚地理解基本概念、掌握相關(guān)操作,并輕松獲取實(shí)戰(zhàn)技巧。
海量學(xué)習(xí)資源免費(fèi)贈(zèng)送
*Java和Oracle項(xiàng)目實(shí)戰(zhàn)教學(xué)錄像
*Java SE類庫(kù)查詢手冊(cè)
*Eclipse常用快捷鍵說(shuō)明文檔
*Eclipse提示與技巧電子書(shū)
*Java常見(jiàn)面試題
*Java常見(jiàn)錯(cuò)誤及解決方案
*Java開(kāi)發(fā)經(jīng)驗(yàn)及技巧大匯總
*Java程序員職業(yè)規(guī)劃
* Java程序員面試技巧
張玉宏,工學(xué)博士,科普作家,阿里云云棲社區(qū)認(rèn)證專家、專欄作家,《品味大數(shù)據(jù)》作者, IEEE會(huì)員, ACM會(huì)員, CCF會(huì)員。2012 年畢業(yè)于電子科技大學(xué),20092011 年在西北大學(xué)做訪問(wèn)學(xué)者,現(xiàn)執(zhí)教于河南工業(yè)大學(xué)。主要研究方向?yàn)楦咝阅苡?jì)算、大數(shù)據(jù)。發(fā)表SCI/EI 論文10余篇,出版國(guó)內(nèi)外學(xué)術(shù)專著5部。
第0章 Java學(xué)習(xí)指南
0.1 Java為什么重要002
0.2 Java簡(jiǎn)史帶給我們的一點(diǎn)思考003
0.3 Java應(yīng)用領(lǐng)域和前景008
0.4 Java學(xué)習(xí)路線圖009
第1章 Java開(kāi)發(fā)環(huán)境搭建
1.1 Java開(kāi)發(fā)環(huán)境013
1.2 安裝Java開(kāi)發(fā)工具箱013
1.2.1 下載JDK013
1.2.2 安裝JDK016
1.3 Java環(huán)境變量的配置017
1.3.1 理解環(huán)境變量017
1.3.2 JDK中的3個(gè)環(huán)境變量018
1.4 享受安裝成果開(kāi)發(fā)第一個(gè)Java程序024
1.5 Eclipse的使用025
1.5.1 Eclipse概述025
1.5.2 創(chuàng)建Java項(xiàng)目026
1.5.3 創(chuàng)建Java類文件028
1.5.4 運(yùn)行Java程序029
1.6 高手點(diǎn)撥030
1.7 實(shí)戰(zhàn)練習(xí)030
第2章 Java程序要素概覽
2.1 一個(gè)簡(jiǎn)單的例子032
2.2 認(rèn)識(shí)Java程序033
2.2.1 Java程序的框架034
2.2.2 標(biāo)識(shí)符035
2.2.3 關(guān)鍵字035
2.2.4 注釋035
2.2.5 變量036
2.2.6 數(shù)據(jù)類型037
2.2.7 運(yùn)算符和表達(dá)式038
2.2.8 類039
2.3 程序的檢測(cè)039
2.3.1 語(yǔ)法錯(cuò)誤039
2.3.2 語(yǔ)義錯(cuò)誤040
2.4 提高程序的可讀性041
2.5 高手點(diǎn)撥042
2.6 實(shí)戰(zhàn)練習(xí)042
第3章 Java編程基礎(chǔ)常量、變量與數(shù)據(jù)類型
3.1 常量與變量044
3.1.1 常量的聲明與使用044
3.1.2 變量的聲明與使用045
3.2 基本數(shù)據(jù)類型049
3.2.1 數(shù)據(jù)類型的意義049
3.2.2 整數(shù)類型050
3.2.3 浮點(diǎn)類型 053
3.2.4 字符類型054
3.2.5 布爾類型056
3.3 高手點(diǎn)撥057
3.4 實(shí)戰(zhàn)練習(xí)058
第4章 編程元素詳解運(yùn)算符、表達(dá)式、語(yǔ)句與流程控制
4.1 運(yùn)算符060
4.1.1 賦值運(yùn)算符060
4.1.2 一元運(yùn)算符060
4.1.3 算術(shù)運(yùn)算符062
4.1.4 邏輯運(yùn)算符063
4.1.5 位運(yùn)算符066
4.1.6 三元運(yùn)算符067
4.1.7 關(guān)系運(yùn)算符與if語(yǔ)句068
4.1.8 遞增與遞減運(yùn)算符069
4.2 表達(dá)式070
4.2.1 算術(shù)表達(dá)式與關(guān)系表達(dá)式071
4.2.2 邏輯表達(dá)式與賦值表達(dá)式071
4.2.3 表達(dá)式的類型轉(zhuǎn)換072
4.3 語(yǔ)句074
4.3.1 語(yǔ)句中的空格074
4.3.2 空語(yǔ)句075
4.3.3 聲明語(yǔ)句與賦值語(yǔ)句075
4.4 程序的控制邏輯076
4.4.1 順序結(jié)構(gòu)076
4.4.2 選擇結(jié)構(gòu)076
4.4.3 循環(huán)結(jié)構(gòu)077
4.5 選擇結(jié)構(gòu)077
4.5.1 if語(yǔ)句077
4.5.2 if…else語(yǔ)句080
4.5.3 if…else if…else語(yǔ)句082
4.5.4 多重選擇──switch語(yǔ)句083
4.6 循環(huán)結(jié)構(gòu)085
4.6.1 while循環(huán)085
4.6.2 do…while循環(huán)086
4.6.3 for循環(huán)088
4.7 循環(huán)的跳轉(zhuǎn)090
4.7.1 break語(yǔ)句090
4.7.2 continue語(yǔ)句092
4.7.3 return語(yǔ)句095
4.8 高手點(diǎn)撥096
4.9 實(shí)戰(zhàn)練習(xí)096
第5章 數(shù)組與枚舉
5.1 理解數(shù)組098
5.2 一維數(shù)組100
5.2.1 一維數(shù)組的聲明與內(nèi)存的分配100
5.2.2 數(shù)組中元素的表示方法101
5.2.3 數(shù)組元素的使用102
5.3 二維數(shù)組104
5.3.1 二維數(shù)組的聲明與賦值105
5.3.2 二維數(shù)組元素的引用及訪問(wèn)106
5.4 枚舉簡(jiǎn)介107
5.5 Java中的枚舉107
5.5.1 常見(jiàn)的枚舉定義方法107
5.5.2 在程序中使用枚舉108
5.5.3 在switch語(yǔ)句中使用枚舉109
5.6 高手點(diǎn)撥110
5.7 實(shí)戰(zhàn)練習(xí)110
第6章 類和對(duì)象
6.1 理解面向?qū)ο蟪绦蛟O(shè)計(jì)112
6.1.1 面向?qū)ο蟪绦蛟O(shè)計(jì)簡(jiǎn)介112
6.1.2 面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征113
6.2 面向?qū)ο蟮幕靖拍?13
6.2.1 類113
6.2.2 對(duì)象113
6.2.3 類和對(duì)象的關(guān)系114
6.3 類的聲明與定義115
6.3.1 類的聲明115
6.3.2 類的定義116
6.4 類的屬性117
6.4.1 屬性的定義117
6.4.2 屬性的使用118
6.5 對(duì)象的聲明與使用120
6.5.1 對(duì)象的聲明120
6.5.2 對(duì)象的使用121
6.5.3 匿名對(duì)象123
6.6 高手點(diǎn)撥124
6.7 實(shí)戰(zhàn)練習(xí)124
第7章 重復(fù)調(diào)用的代碼塊方法
7.1 方法的基本定義126
7.2 方法的使用128
7.3 方法中的形參與實(shí)參129
7.4 方法的重載130
7.5 構(gòu)造方法133
7.5.1 構(gòu)造方法的概念133
7.5.2 構(gòu)造方法的重載135
7.5.3 構(gòu)造方法的私有化139
7.6 在方法內(nèi)部調(diào)用方法142
7.7 static方法143
7.7.1 自定義static方法143
7.7.2 static主方法(main)145
7.8 高手點(diǎn)撥146
7.9 實(shí)戰(zhàn)練習(xí)146
第8章 類的封裝、繼承與多態(tài)
8.1 封裝149
8.1.1 Java訪問(wèn)權(quán)限修飾符149
8.1.2 封裝問(wèn)題引例149
8.1.3 類的封裝實(shí)例150
8.2 繼承156
8.2.1 Java中的繼承156
8.2.2 繼承問(wèn)題的引入157
8.2.3 繼承實(shí)現(xiàn)代碼復(fù)用158
8.2.4 繼承的限制160
8.3 覆寫(xiě)163
8.3.1 屬性的覆蓋163
8.3.2 方法的覆寫(xiě)164
8.4 多態(tài)167
8.4.1 多態(tài)的基本概念167
8.4.2 方法多態(tài)性169
8.4.3 對(duì)象多態(tài)性170
8.5 高手點(diǎn)撥172
8.6 實(shí)戰(zhàn)練習(xí)172
第9章 抽象類與接口
9.1 抽象類174
9.1.1 抽象類的定義174
9.1.2 抽象類的使用175
9.2 接口178
9.2.1 接口的基本概念178
9.2.2 使用接口的原則179
9.3 高手點(diǎn)撥186
9.4 實(shí)戰(zhàn)練習(xí)186
第10章 Java常用類庫(kù)
10.1 類庫(kù)的概念188
10.2 基本數(shù)據(jù)類型的包裝類188
10.2.1 裝箱與拆箱189
10.2.2 基本數(shù)據(jù)類型與字符串的轉(zhuǎn)換191
10.3 String類193
10.3.1 字符串類的聲明193
10.3.2 String類中常用的方法194
10.4 Math與Random類197
10.4.1 Math類的使用197
10.4.2 Random類的使用198
10.5 高手點(diǎn)撥200
10.6 實(shí)戰(zhàn)練習(xí)200
第11章 異常的捕獲與處理
11.1 異常的基本概念202
11.1.1 簡(jiǎn)單的異常范例202
11.1.2 異常的處理203
11.2 異常類的處理流程208
11.3 throws關(guān)鍵字209
11.4 throw關(guān)鍵字210
11.5 異常處理的標(biāo)準(zhǔn)格式211
11.6 高手點(diǎn)撥212
11.7 實(shí)戰(zhàn)練習(xí)212
第12章 多線程
12.1 感知多線程215
12.2 體驗(yàn)多線程215
12.2.1 通過(guò)繼承Thread類實(shí)現(xiàn)多線程216
12.2.2 通過(guò)實(shí)現(xiàn)Runnable接口實(shí)現(xiàn)多線程218
12.2.3 兩種多線程實(shí)現(xiàn)機(jī)制的比較220
12.2.4 Java 8 中運(yùn)行線程的新方法224
12.3 線程的狀態(tài)225
12.4 線程操作的一些方法229
12.4.1 取得和設(shè)置線程的名稱229
12.4.2 判斷線程是否啟動(dòng)232
12.4.3 守護(hù)線程與setDaemon方法233
12.4.4 線程的聯(lián)合234
12.5 高手點(diǎn)撥236
12.6 實(shí)戰(zhàn)練習(xí)236
第13章 文件I/O操作
13.1 輸入/輸出的重要性238
13.2 讀寫(xiě)文本文件238
13.2.1 File文件類238
13.2.2 文本文件的操作240
13.2.3 字符編碼問(wèn)題244
13.3 文本的輸入和輸出247
13.3.1 讀入文本單詞247
13.3.2 讀入單個(gè)字符248
13.3.3 判斷字符分類的方法248
13.3.4 讀入一行文本249
13.3.5 將字符轉(zhuǎn)換為數(shù)字250
13.4 命令行參數(shù)的使用251
13.4.1 System類對(duì)I/O的支持251
13.4.2 Java命令行參數(shù)解析252
13.5 高手點(diǎn)撥255
13.6 實(shí)戰(zhàn)練習(xí)256
第14章 GUI編程
14.1 GUI概述258
14.2 GUI與AWT258
14.3 AWT容器259
14.3.1 Frame窗口259
14.3.2 Panel面板263
14.3.3 布局管理器264
14.4 AWT常用組件269
14.4.1 按鈕與標(biāo)簽組件270
14.4.2 文本域272
14.4.3 圖形控件274
14.5 事件處理275
14.5.1 事件處理的流程275
14.5.2 常用的事件276
14.5.3 事件處理小案例會(huì)動(dòng)的烏龜281
14.6 Swing概述284
14.7 Swing的基本組件286
14.7.1 JTable表格286
14.7.2 JComboBox下拉列表框288
14.7.3 組件的常用方法289
14.8 Swing的應(yīng)用小案例簡(jiǎn)易學(xué)籍管理系統(tǒng)290
14.9 高手點(diǎn)撥293
14.10 實(shí)戰(zhàn)練習(xí)294
第15章 數(shù)據(jù)庫(kù)編程
15.1 數(shù)據(jù)庫(kù)概述296
15.2 Java數(shù)據(jù)庫(kù)連接利器JDBC296
15.3 輕量級(jí)數(shù)據(jù)庫(kù)SQLite296
15.3.1 SQLite的準(zhǔn)備工作296
15.3.2 用Java連接SQLite299
15.3.3 創(chuàng)建數(shù)據(jù)表300
15.3.4 更新數(shù)據(jù)表302
15.3.5 查詢數(shù)據(jù)表307
15.4 SQLite實(shí)戰(zhàn)簡(jiǎn)易學(xué)生信息管理系統(tǒng)311
15.4.1 基本數(shù)據(jù)結(jié)構(gòu)312
15.4.2 數(shù)據(jù)庫(kù)操作有關(guān)工具類314
15.4.3 主界面的構(gòu)造318
15.4.4 用于輸入新數(shù)據(jù)的對(duì)話框?qū)崿F(xiàn)324
15.5 MySQL數(shù)據(jù)庫(kù)330
15.5.1 MySQL數(shù)據(jù)庫(kù)的基本命令330
15.5.2 在Java中使用MySQL數(shù)據(jù)庫(kù)333
15.6 高手點(diǎn)撥338
15.7 實(shí)戰(zhàn)練習(xí)338
第16章 Java Web初步
16.1 JSP概述340
16.2 JSP的運(yùn)行環(huán)境340
16.2.1 安裝Tomcat340
16.2.2 配置虛擬目錄343
16.2.3 編寫(xiě)第一個(gè)JSP程序345
16.2.4 Tomcat執(zhí)行流程346
16.3 基礎(chǔ)語(yǔ)法347
16.3.1 顯式注釋與隱式注釋347
16.3.2 代碼段348
16.3.3 Page指令350
16.3.4 包含指令352
16.3.5 跳轉(zhuǎn)指令356
16.4 內(nèi)置對(duì)象357
16.4.1 request對(duì)象358
16.4.2 response對(duì)象361
16.5 Servlet367
16.5.1 Servlet簡(jiǎn)介367
16.5.2 第一個(gè)Servlet程序368
16.6 高手點(diǎn)撥372
16.7 實(shí)戰(zhàn)練習(xí)372
第17章 常用設(shè)計(jì)框架
17.1 框架的內(nèi)涵374
17.2 Struts 開(kāi)發(fā)基礎(chǔ)374
17.2.1 Struts簡(jiǎn)介374
17.2.2 MVC的基本概念375
17.2.3 下載Struts 2 類庫(kù)375
17.2.4 從Struts 2的角度理解MVC 376
17.2.5 第一個(gè)Struts 2 實(shí)例377
17.2.6 運(yùn)行測(cè)試StrutsDemo工程386
17.2.7 小節(jié)387
17.3 Spring快速上手387
17.3.1 Spring基本知識(shí) 387
17.3.2 Spring開(kāi)發(fā)準(zhǔn)備 388
17.3.3 Spring框架配置 388
17.3.4 Spring開(kāi)發(fā)實(shí)例 392
17.4 Hibernate入門(mén)396
17.4.1 Hibernate開(kāi)發(fā)基礎(chǔ)397
17.4.2 Hibernate開(kāi)發(fā)準(zhǔn)備397
17.4.3 Hibernate開(kāi)發(fā)實(shí)例400
17.5 高手點(diǎn)撥416
17.6 實(shí)戰(zhàn)練習(xí)416
第18章 Android編程基礎(chǔ)
18.1 Android簡(jiǎn)介418
18.1.1 Android系統(tǒng)架構(gòu)418
18.1.2 Android應(yīng)用開(kāi)發(fā)特色418
18.2 搭建開(kāi)發(fā)環(huán)境419
18.2.1 準(zhǔn)備所需要的軟件419
18.2.2 搭建開(kāi)發(fā)環(huán)境419
18.3 創(chuàng)建第一個(gè)Android項(xiàng)目422
18.3.1 創(chuàng)建HelloWorld項(xiàng)目422
18.3.2 運(yùn)行HelloWorld項(xiàng)目424
18.3.3 解析第一個(gè)Android程序425
18.4 詳解基本布局428
18.4.1 線性布局428
18.4.2 相對(duì)布局432
18.4.3 幀布局436
18.5 常見(jiàn)控件的使用方法437
18.5.1 TextView437
18.5.2 EditText438
18.5.3 Button440
18.5.4 ImageView443
18.6 Activity詳細(xì)介紹444
18.6.1 Activity生命周期444
18.6.2 Activity狀態(tài)444
18.6.3 Activity啟動(dòng)模式445
18.7 高手點(diǎn)撥446
18.8 實(shí)戰(zhàn)練習(xí)446
第19章 Android項(xiàng)目實(shí)戰(zhàn)智能電話回?fù)芟到y(tǒng)
19.1 系統(tǒng)概述449
19.1.1 背景介紹449
19.1.2 運(yùn)行程序449
19.1.3 系統(tǒng)需求分析450
19.1.4 詳細(xì)功能設(shè)計(jì)450
19.2 系統(tǒng)實(shí)現(xiàn)451
19.2.1 主界面451
19.2.2 修改密碼 452
19.2.3 意見(jiàn)反饋455
19.3 項(xiàng)目功能用到的知識(shí)點(diǎn)講解460
19.3.1 讀取通訊錄460
19.3.2 讀取聯(lián)系人頭像463
19.3.3 讀取短信464
19.4 高手點(diǎn)撥466
19.5 實(shí)戰(zhàn)練習(xí)466
第20章 Java Web項(xiàng)目實(shí)戰(zhàn)我的飯票網(wǎng)
20.1 系統(tǒng)分析468
20.2 系統(tǒng)設(shè)計(jì)468
20.3 數(shù)據(jù)庫(kù)設(shè)計(jì)469
20.3.1 功能分析469
20.3.2 基本表設(shè)計(jì)469
20.4 用戶注冊(cè)模塊設(shè)計(jì)473
20.4.1 用戶注冊(cè)模塊概述473
20.4.2 與用戶注冊(cè)有關(guān)的數(shù)據(jù)庫(kù)連接及操作類473
20.4.3 用戶注冊(cè)界面設(shè)計(jì)480
20.4.4 用戶注冊(cè)事件處理頁(yè)面483
20.5 用戶登錄模塊設(shè)計(jì)484
20.5.1 用戶登錄模塊概述484
20.5.2 與用戶登錄有關(guān)的數(shù)據(jù)庫(kù)連接及操作類484
20.5.3 用戶登錄界面設(shè)計(jì)486
20.5.4 用戶登錄驗(yàn)證處理頁(yè)面488
20.6 用戶主頁(yè)面模塊設(shè)計(jì)490
20.6.1 用戶主頁(yè)面模塊概述490
20.6.2 與用戶主頁(yè)面有關(guān)的數(shù)據(jù)庫(kù)連接及操作類490
20.6.3 用戶主頁(yè)面界面設(shè)計(jì)495
20.7 高手點(diǎn)撥498
20.8 實(shí)戰(zhàn)練習(xí)498
第21章 大數(shù)據(jù)項(xiàng)目實(shí)戰(zhàn)Hadoop下的數(shù)據(jù)處理
21.1 認(rèn)識(shí)Hadoop500
21.2 理解MapReduce編程范式501
21.3 第一個(gè)Hadoop案例WordCount代碼詳解501
21.3.1 WordCount基本流程502
21.3.2 WordCount代碼詳解503
21.3.3 運(yùn)行WordCount506
21.4 面向K-Means聚類算法的Hadoop實(shí)踐510
21.4.1 K-Means聚類算法簡(jiǎn)介510
21.4.2 基于MapReduce的K-Means算法實(shí)現(xiàn)513
21.4.3 編寫(xiě)K-Means513
21.4.4 在Hadoop集群運(yùn)行KMeans538
21.5 高手點(diǎn)撥542
21.6 實(shí)戰(zhàn)練習(xí)542
附錄:全分布式Hadoop集群的構(gòu)建
安裝CentOS 7543
安裝Java并配置環(huán)境變量544
安裝Hadoop546
下載Hadoop包546
安裝Hadoop547
Hadoop的運(yùn)行模式547
Hadoop集群構(gòu)建548
設(shè)置靜態(tài)IP地址548
修改hosts文件550
安裝和配置SSH服務(wù)550
安裝SSH551
SSH免密碼登錄551
虛擬機(jī)的配置文件同步553
全分布模式下配置Hadoop553
配置Hadoop環(huán)境變量553
配置hadoop-env.sh554
配置HDFS的主節(jié)點(diǎn)(core-site.xml)555
配置slaves556
配置yarn-site.xml557
配置mapred-site.xml558
驗(yàn)證全分布模式559
默認(rèn)配置文件所在位置560
關(guān)閉Hadoop560