Java從小白到大牛(第2版)

關東升

  • 出版商: 清華大學
  • 出版日期: 2021-03-01
  • 定價: $594
  • 售價: 8.5$505
  • 語言: 簡體中文
  • 頁數: 496
  • 裝訂: 平裝
  • ISBN: 7302567972
  • ISBN-13: 9787302567974

下單後立即進貨 (約4週~6週)

  • Java從小白到大牛(第2版)-preview-1
  • Java從小白到大牛(第2版)-preview-2
  • Java從小白到大牛(第2版)-preview-3
Java從小白到大牛(第2版)-preview-1

相關主題

商品描述

本書是一本Java語言學習立體教程,讀者群是零基礎小白,通過本書的學習能夠成為Java大牛。主要內容包括:Java語法基礎、Java編碼規範、數據類型、運算符、控制語句、數組、字符串、面向對象基礎、繼承與多態、抽象類與接口、枚舉類、Java常用類、集合框架、泛型、反射機制、Annotation註解、Lambda表達式、異常處理、輸入輸出、多線程、網絡編程和圖形用戶界面編程、反射、註解和數據庫編程等技術。最後是項目實戰,在部分系統地講解了兩個項目:PetStore寵物商店和Java版QQ2006聊天工具開發過程。

作者簡介

關東昇 一個在IT領域摸爬滾打□0多年的老程序員、知名培訓專家、暢銷書作家。
精通多種IT技術。參與設計和開發北京市公交一卡通大型項目,開發國家農產品追溯系統、金融系統微博等移動客戶端項目,並在App Store發布多款遊戲和應用軟件。
長期為中國移動、中國聯通、南方航空、中石油、工商銀行、平安銀行和天津港務局等企事業單位提供培訓服務。
先後出版了《iOS開髮指南》《從零開始學Swift》《Android網絡遊戲開發實戰》《Cocos□dx實戰》《Python從小白到大牛》《Kotlin從小白到大牛》等40多部圖書。

目錄大綱

第1篇Java基礎

第1章開篇綜述
1.1Java語言歷史
1.2Java語言特點
1.3Java平台
1.3.1Java SE
1.3.2Java EE
1.3.3Java ME
1.4Java虛擬機
1.5本章小結
1.6同步練習

第2章開發環境搭建
2.1JDK工具包
2.1.1Windows平台安裝JDK 14環境要求
2.1.2JDK下載和安裝
2.1.3設置環境變量
2.2IntelliJ IDEA開發工具
2.2.1IntelliJ IDEA下載
2.2.2IntelliJ IDEA安裝
2.3使用文本編輯工具
2.4本章小結
2.5動手實踐

第3章個Java程序
3.1使用IntelliJ IDEA實現
3.1.1創建項目
3.1.2創建類
3.1.3運行程序
3.2文本編輯工具JDK實現
3.2.1編寫源代碼文件
3.2.2編譯程序
3.2.3運行程序
3.3代碼解釋
3.4本章小結
3.5動手實踐:世界,你好!

第4章Java語法基礎
4.1標識符、關鍵字和保留字
4.1.1標識符
4.1.2關鍵字
4.2Java分隔符
4.3變量
4.3.1變量聲明
4.3.2使用Java 10局部變量類型推斷
4.4常量
4.5Java源代碼文件
4.6包
4.6.1定義包
4.6.2引入包
4.6.3常用包
4.7本章小結
4.8同步練習

第5章Java編碼規範
5.1命名規範
5.2註釋規範
5.2.1文件註釋
5.2.2文檔註釋
5.2. 3代碼註釋
5.3代碼排版
5.3.1空行
5.3.2空格
5.3.3縮進
5.3.4斷行
5.4其他規範
5.5本章小結
5.6同步練習

第6章數據類型
6.1基本數據類型
6.1.1整數類型
6.1.2浮點類型
6.1.3字符類型
6.1.4布爾類型
6.2數值表示方式
6.2.1進制數字表示
6.2.2指數表示
6.3數值類型相互轉換
6.3.1自動類型轉換
6.3.2強制類型轉換
引用數據類型
6.5本章小結
6.6同步練習

第7章運算符
7.1算術運算符
7.1.1一元運算符
7.1.2二元運算符
7.1.3算術賦值運算符
7.2關係運算符
7.3邏輯運算符
7.4位運算符
7.5其他運算符
7.6運算符優先級
7.7本章小結
7.8同步練習

第8章控制語句
8.1分支語句
8.1.1if語句
8.1.2switch語句
8.1.3Java 14中switch新特性
8.2循環語句
8.2.1while語句
8.2.2do-while語句
8.2.3for語句
8.2.4增強for語句
8.3跳轉語句
8.3 .1break語句
8.3.2continue語句
8.4本章小結
8.5同步練習
8.6動手實踐:計算水仙花數

第9章數組
9.1一維數組
9.1.1數組聲明
9.1.2數組初始化
9.1.3案例:數組合併
9.2多維數組
9.2.1二維數組聲明
9.2.2二維數組的初始化
9.2.3不規則數組
9.3本章小結
9.4同步練習
9.5動手實踐:排序給定整數

第10章字符串
10.1Java中的字符串
10.2使用API文檔
10.3不可變字符串
10.3.1String
10.3.2字符串池
10.3 .3字符串拼接
10.3.4字符串查找
10.3.5字符串比較
10.3.6字符串截取
10.4可變字符串
10.4.1StringBuffer和StringBuilder
10.4.2字符串追加
10.4.3字符串插入、刪除和替換
10.5本章小結
10.6同步練習
10.7動手實踐:身份號碼識別

第二篇面向對象

第11章面向對象基礎
11.1面向對象編程
11.2面向對像三個基本特性
11.3類
11.3.1類聲明
11.3.2類體
11.4方法重載
11.5封裝性與訪問控制
11.5.1私有級別
11.5.2默認級別
11.5.3保護級別
11.5.4公有級別
11.6靜態變量和靜態方法
11.7靜態代碼塊
11.8本章小結
11.9同步練習

第12章對象
12.1創建對象
12.2空對象
12.3構造方法
12.3.1構造方法概念
12.3.2默認構造方法
12.3.3構造方法重載
12.3.4構造方法封裝
12.4this關鍵字
12.5對象銷毀
12.6本章小結
12.7同步練習

第13章繼承與多態
13.1Java中的繼承
13.2調用父類構造方法
13.3成員變量隱藏和方法覆蓋
13.3.1成員變量隱藏
13.3.2方法的覆蓋
13.4多態
13.4.1多態概念
13.4.2引用類型檢查
13.4.3引用類型轉換
13.5再談final關鍵字
13.5.1final修飾變量
13.5.2final修飾類
13.5.3final修飾方法
13.6本章小結
13.7同步練習

第14章抽像類與接口
14.1抽像類
14.1.1抽像類概念
14.1.2抽像類聲明和實現
14.2接口
14.2.1抽象類與接口區別
14.2.2接口聲明和實現
14.2.3接口與多繼承
14.2.4接口繼承
14.2.5接口中的默認方法和靜態方法
14.3本章小結
14.4同步練習

第15章枚舉類
15.1枚舉概述
15.2枚舉類聲明
15.2.1簡單形式的枚舉類
15.2.2枚舉類中成員變量和成員方法
15.2.3枚舉類構造方法
15.3枚舉常用方法
15.4本章小結
15.5同步練習

第16章Java常用類
16.1Java根類——Object
16.1.1toString()方法
16.1.2對像比較方法
16.2包裝類
16.2.1數值包裝類
16.2.2Character類
16.2.3Boolean類
16.2.4自動裝箱/拆箱
16.3Math類
16.4大數值
16.4.1BigInteger類
16.4.2BigDecimal類
16.5日期和時間相關類
16.5.1Date類
16.5.2日期格式化和解析
16.5.3Calendar類
16.6本章小結
16.7同步練習

第17章內部類
17.1內部類概述
17.1.1內部類的作用
17.1.2內部類的分類
17.2成員內部類
17.2.1實例成員內部類
17.2.2靜態成員內部類
17.3局部內部類
17.4匿名內部類
17.5本章小結
17.6同步練習

第18章Java函數式編程
18.1Lambda表達式概述
18.1.1從一個示例開始
18.1.2Lambda表達式實現
18.1.3函數式接口
18.2Lambda表達式簡化形式
18.2.1省略參數類型
18.2 .2省略參數小括號
18.2.3省略return和大括號
18.3作為參數使用Lambda表達式
18.4訪問變量
18.4.1訪問成員變量
18.4.2捕獲局部變量
18.5方法引用
18.6本章小結
18.7同步練習
18.8動手實踐:找出素數

第三篇Java進階

第19章異常處理
19.1從一個問題開始
19.2異常類繼承層次
19.2.1Throwable類
19.2.2Error和Exception
19.2.3受檢查異常和運行時異常
19.3捕獲異常
19.3.1try-catch語句
19.3.2多catch代碼塊
19.3.3try-catch語句嵌套
19.3.4多重捕獲
19.4釋放資源
19.4.1finally代碼塊
19.4.2自動資源管理
19.5throws與聲明方法拋出異常
19.6自定義異常類
19.7throw與顯式拋出異常
19.8本章小結
19.9同步練習
19.10動手實踐:編寫自己的異常處理類

第20章對象容器——集合
20.1集合概述
20.2List集合
20.2.1常用方法
20.2.2遍歷集合
20.3Set集合
20.3.1常用方法
20.3.2遍歷集合
20.4Map集合
20.4.1常用方法
20.4.2遍歷集合
20.5本章小結
20.6同步練習

第21章泛型
21.1一個問題的思考
21.2使用泛型
21.3自定義泛型類
21.4自定義泛型接口
21.5泛型方法
21.6本章小結
21.7同步練習
21.8動手實踐:編寫自己的泛型類

第22章文件管理與I/O流
22.1文件管理
22.1.1File類
22.1.2案例:文件過濾
22.2I/O流概述
22.2.1Java流設計理念
22.2.2流類繼承層次
22.3字節流
22.3.1InputStream抽像類
22.3.2OutputStream抽像類
22.3.3案例:文件複製
22.3.4使用字節緩衝流
22.4字符流
22.4.1Reader抽像類
22.4.2Writer抽像類
22.4.3案例:文件複製
22.4.4使用字符緩衝流
22.4.5字節流轉換字符流
22.5本章小結
22.6同步練習
22.7動手實踐:讀寫日期

第23章多線程編程
23.1基礎知識
23.1.1進程
23.1.2線程
23.1.3主線程
23.2創建子線程
23.2. 1實現Runnable接口
23.2.2繼承Thread線程類
23.2.3使用匿名內部類和Lambda表達式實現線程體
23.3線程的狀態
23.4線程管理
23.4.1線程優先級
23.4.2等待線程結束
23.4.3線程讓步
23.4 .4線程停止
23.5線程安全
23.5.1臨界資源問題
23.5.2多線程同步
23.6線程間通信
23.7本章小結
23.8同步練習
23.9動手實踐:時鐘應用

第24章網絡編程
24.1網絡基礎
24.1.1網絡結構
24.1. 2TCP/IP
24.1.3IP地址
24.1.4端口
24.2TCP Socket低層次網絡編程
24.2.1TCP Socket通信概述
24.2.2TCP Socket通信過程
24.2.3Socket類
24.2.4ServerSocket類
24.2.5案例:文件上傳工具
24.2.6案例:聊天工具
24.3UDP Socket低層次網絡編程
24.3.1DatagramSocket類
24.3.2DatagramPacket類
24.3.3案例:文件上傳工具
24.3.4案例:聊天工具
24.4數據交換格式
24.4.1JSON文檔結構
24.4.2使用第三方JSON庫
24.4.3JSON數據編碼和解碼
24.4.4案例:聊天工具
24.5訪問互聯網資源
24.5.1URL概念
24.5. 2HTTP/HTTPS協議
24.5.3搭建自己的Web服務器
24.5.4使用URL類
24.5.5使用HttpURLConnection發送GET請求
24.5.6使用HttpURLConnection發送T請求
24.5.7案例:Downloader
24.6本章小結
24.7同步練習
24.8動手實踐:解析來自於Web的結構化數據

第25章Swing圖形用戶界面編程
25.1Java圖形用戶界面技術
25.2Swing技術基礎
25.2.1Swing類層次結構
25.2.2Swing程序結構
25.3事件處理模型
25.3.1採用內部類處理事件
25.3.2採用Lambda表達式處理事件
25.3.3使用適配器
25.4佈局管理
25.4.1FlowLayout佈局
25.4. 2BorderLayout佈局
25.4.3GridLayout佈局
25.4.4不使用佈局管理器
25.5Swing組件
25.5.1標籤和按鈕
25.5.2文本輸入組件
25.5.3複選框和單選按鈕
25.5.4下拉列表
25.5.5列表
25.5. 6分隔面板
25.5.7使用表格
25.6案例:圖書庫存
25.7本章小結
25.8同步練習
25.9動手實踐:展示Web數據

第26章反射
26.1Java反射機制API
26.1.1java.lang.Class類
26.1.2java.lang.reflect包
26.2創建對象
26.2.1調用構造方法
26.2.2案例:依賴注入實現
26.3調用方法
2調用成員變量
26.5本章小結
26.6同步練習

第27章註解
27.1基本註解
27.1.1@Override
27.1.2@Deprecated
27.1.3@SuppressWarnings
27.1.4@SafeVarargs
27.1.5@FunctionalInterface
27.2元註解
27.3自定義註解
27.3.1聲明註解
27.3.2案例:使用元註解
27.3.3案例:讀取運行時註解信息
27.4本章小結
27.5同步練習

第28章數據庫編程
28.1數據持久化技術概述
28.2MySQL數據庫管理系統
28.2. 1數據庫安裝和配置
28.2.2登錄服務器
28.2.3常見的管理命令
28.3JDBC技術
28.3.1JDBC API
28.3.2加載驅動程序
28.3.3建立數據連接
28.3.4三個重要接口
28.4案例:數據CRUD操作
28.4 .1數據庫編程一般過程
28.4.2數據查詢操作
28.4.3數據修改操作
28.5本章小結
28.6同步練習
28.7動手實踐:從結構化文檔遷移數據到數據庫

第四篇項目實戰

第29章項目實戰1:開發PetStore寵物商店項目
29.1系統分析與設計
29.1.1項目概述
29.1.2需求分析
29.1.3原型設計
29.1.4數據庫設計
29.1.5架構設計
29.1.6系統設計
29.2任務1:創建數據庫
29.2.1迭代1.1:安裝和配置MySQL數據庫
29.2.2迭代1.2:編寫數據庫DDL腳本
29.2.3迭代1.3:插入初始數據到數據庫
29.3任務2:初始化項目
29.3.1迭代2.1:配置項目構建路徑
29.3.2迭代2.2:添加資源圖片
29.3.3迭代2.3:添加包
29.4任務3 :編寫數據持久層代碼
29.4.1迭代3.1:編寫實體類
29.4.2迭代3.2:數據庫幫助類DBHelper
29.4.3迭代3.3:編寫DAO類
29.5任務4:編寫表示層代碼
29.5.1迭代4.1:編寫啟動類
29.5.2迭代4.2:編寫自定義窗口類——MyFrame
29.5.3迭代4.3:用戶登錄窗口
29.5.4迭代4.4:商品列表窗口
29.5.5迭代4.5:商品購物車窗口
29.6任務5:應用程序打包發布
29.6.1迭代5.1:處理TODO任務
29.6.2迭代5.2 :打包

第30章項目實戰2:開發Java版QQ聊天工具
30.1系統分析與設計
30.1.1項目概述
30.1.2需求分析
30.1.3原型設計
30.1.4數據庫設計
30.1.5網絡拓撲圖
30.1.6系統設計
30.2任務1:創建服務器端數據庫
30.2.1迭代1.1:安裝和配置MySQL數據庫
30.2.2迭代1.2:編寫數據庫DDL腳本
30.2.3迭代1.3:插入初始數據到數據庫
30.3任務2:創建項目
30.3.1迭代2.1:創建QQ客戶端項目
30.3.2迭代2.2:QQ客戶端項目中添加資源圖片
30.3.3迭代2.3:QQ客戶端項目中添加包
30.3.4迭代2.4:QQ客戶端項目添加JSONjava庫
30.3.5迭代2.5:創建QQ服務器項目
30.3.6迭代2.6:QQ服務器項目中添加包
30.3.7迭代2.7:QQ服務器項目添加庫
30.4任務3:編寫QQ服務器項目外圍代碼
30.4.1迭代3.1:數據庫幫助類DBHelper
30.4.2迭代3.2:編寫UserDAO類
30.4.3迭代3.3:編寫ClientInfo類
30.5任務4:QQ客戶端項目UI實現
30.5. 1迭代4.1:登錄窗口實現
30.5.2迭代4.2:好友列表窗口實現
30.5.3迭代4.3:聊天窗口實現
30.6任務5:用戶登錄過程實現
30.6.1迭代5.1:客戶端啟動
30.6.2迭代5.2:客戶端登錄編程
30.6.3迭代5.3:服務器啟動
30.迭代5.4:服務器驗證編程
30.7任務6:用戶登錄刷新好友列表
30.7.1迭代6.1:用戶登錄刷新好友列表服務器端編程
30.7.2迭代6.2:用戶登錄刷新好友列表客戶端編程
30.8任務7:聊天過程實現
30.8.1迭代7.1:客戶端用戶1向用戶3發送消息
30.8.2迭代7.2:服務器接收用戶1消息與轉發給用戶3消息
30.8.3迭代7.3 :客戶端用戶3接收用戶1消息
30.9任務8:用戶下線刷新好友列表過程
30.9.1迭代8.1:客戶端編程
30.9.2迭代8.2:服務器端編程
30.10測試與運行
30.10.1啟動服務器
30.10.2啟動服務器失敗分析
30.10.3啟動客戶端
30.10.4啟動客戶端失敗分析