3dwoo大學簡體電腦書店
瘋狂Java講義(第6版)(上冊)
( 簡體 字)
作者:李剛類別:1. -> 程式設計 -> JAVA -> Java
出版社:電子工業出版社瘋狂Java講義(第6版)(上冊) 3dWoo書號: 56205
詢問書籍請說出此書號!
有庫存
NT售價: 690
出版日:1/1/2023
頁數:512
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787121447532 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第1章 Java語言概述與開發環境
1.1 Java語言的發展簡史
1.2 Java程序運行機制
1.2.1 高級語言的運行機制
1.2.2 Java程序的運行機制和JVM
1.3 開發Java程序的準備
1.3.1 下載和安裝Java 17的JDK
不是說JVM是運行Java程序的虛擬機嗎?那JRE和JVM的關系是怎樣的呢?
1.3.2 JDK 17增強的安裝器與PATH環境變量
為什么選擇用戶變量?用戶變量與系統變量有什么區別?
1.4 第一個Java程序
1.4.1 編輯Java源代碼
1.4.2 編譯Java程序
當編譯C程序時,不僅需要指定存放目標文件的位置,而且需要指定目標文件的文件名,這里使用javac編譯Java程序時怎么不需要指定目標文件的文件名呢?
1.4.3 運行Java程序
1.4.4 根據CLASSPATH環境變量定位類
1.5 Java程序的基本規則
1.5.1 Java程序的組織形式
1.5.2 Java源文件的命名規則
1.5.3 初學者容易犯的錯誤
1.6 交互式工具:jshell
1.7 Java 17改進的垃圾回收器
1.8 何時開始使用IDE工具
我想學習Java編程,到底是學習Eclipse好,還是學習IntelliJ IDEA好呢?
1.9 本章小結
本章練習
第2章 理解面向對象
2.1 面向對象
2.1.1 結構化程序設計簡介
2.1.2 程序的三種基本結構
2.1.3 面向對象程序設計簡介
2.1.4 面向對象的基本特征
2.2 UML介紹
2.2.1 用例圖
2.2.2 類圖
2.2.3 組件圖
2.2.4 部署圖
2.2.5 順序圖
2.2.6 活動圖
2.2.7 狀態機圖
2.3 Java的面向對象特征
2.3.1 一切都是對象
2.3.2 類和對象
2.4 本章小結
第3章 數據類型和運算符
3.1 注釋
3.1.1 單行注釋和多行注釋
3.1.2 文檔注釋
API文檔是什么?
為什么要學習查看API文檔的方法?
3.2 變量與數據類型分類
什么是變量?變量有什么用?
3.3 標識符和關鍵字
3.3.1 分隔符
3.3.2 標識符規則
3.3.3 Java關鍵字
3.4 基本數據類型
3.4.1 整型
3.4.2 字符型
什么是字符集?
3.4.3 浮點型
3.4.4 在數值中使用下畫線分隔
3.4.5 布爾型
3.4.6 使用var定義變量
3.5 基本類型的類型轉換
3.5.1 自動類型轉換
3.5.2 強制類型轉換
3.5.3 表達式類型的自動提升
3.6 直接量
3.6.1 直接量的類型
3.6.2 直接量的賦值
3.6.3 Java 17增加的塊字符串
3.7 運算符
3.7.1 算術運算符
3.7.2 賦值運算符
3.7.3 位運算符
3.7.4 擴展后的賦值運算符
3.7.5 比較運算符
3.7.6 邏輯運算符
3.7.7 三目運算符
3.7.8 運算符的結合性和優先級
3.8 本章小結
本章練習
第4章 流程控制與數組
4.1 順序結構
4.2 分支結構
4.2.1 if條件語句
4.2.2 傳統switch分支語句
4.2.3 Java 17的新式switch語句
4.2.4 Java 17新增的switch表達式
4.3 循環結構
4.3.1 while循環語句
4.3.2 do while循環語句
4.3.3 for循環
4.3.4 嵌套循環
4.4 控制循環結構
4.4.1 使用break結束循環
4.4.2 使用continue忽略本次循環剩下的語句
4.4.3 使用return結束方法
4.5 數組類型
4.5.1 理解數組:數組也是一種類型
int[]是一種數據類型嗎?怎么使用這種類型呢?
4.5.2 定義數組
4.5.3 數組的初始化
能不能只分配內存空間,不賦初始值呢?
4.5.4 使用數組
為什么要記住這些異常信息?
4.5.5 foreach循環
4.6 深入數組
4.6.1 內存中的數組
為什么有棧內存和堆內存之分?
4.6.2 基本類型數組的初始化
4.6.3 引用類型數組的初始化
4.6.4 沒有多維數組
我是否可以讓圖4.13中灰色覆蓋的數組元素再次指向另一個數組?這樣不就可以擴展成三維數組,甚至擴展成更多維的數組嗎?
4.6.5 操作數組的工具類:Arrays
4.6.6 數組應用舉例
4.7 本章小結
本章練習
第5章 面向對象(上)
5.1 類和對象
5.1.1 定義類
構造器不是沒有返回值嗎?為什么不能用void聲明呢?
5.1.2 對象的產生和使用
5.1.3 對象、引用和指針
5.1.4 對象的this引用
5.2 方法詳解
5.2.1 方法的所屬性
5.2.2 方法的參數傳遞機制
5.2.3 形參個數可變的方法
5.2.4 遞歸方法
5.2.5 方法重載
為什么方法的返回值類型不能用于區分重載的方法?
5.3 成員變量和局部變量
5.3.1 成員變量和局部變量分類
5.3.2 成員變量的初始化和內存中的運行機制
5.3.3 局部變量的初始化和內存中的運行機制
5.3.4 變量的使用規則
5.4 隱藏和封裝
5.4.1 理解封裝
5.4.2 使用訪問控制符
5.4.3 package、import和import static
5.4.4 Java的常用包
5.5 深入構造器
5.5.1 使用構造器執行初始化
構造器是創建Java對象的途徑,是不是說構造器完全負責創建Java對象?
5.5.2 構造器重載
為什么要用this來調用另一個重載的構造器?我把另一個構造器中的代碼復制到這個構造器中不就可以了嗎?
5.6 類的繼承
5.6.1 繼承的特點
5.6.2 重寫父類的方法
5.6.3 super限定
5.6.4 調用父類構造器
為什么我在創建Java對象時從未感覺到java.lang.Object類的構造器被調用過?
5.7 多態
5.7.1 多態性
5.7.2 引用變量的強制類型轉換
5.7.3 instanceof運算符
5.7.4 Java 17為instanceof增加的模式匹配
5.7.5 Java 17為switch增加的模式匹配
5.8 繼承與組合
5.8.1 使用繼承的注意點
5.8.2 利用組合實現復用
當使用組合關系實現復用時,需要創建兩個Animal對象,這是不是意味著使用組合關系時系統開銷更大?
5.9 初始化塊
5.9.1 使用初始化塊
5.9.2 實例初始化塊和構造器
5.9.3 類初始化塊
5.10 本章小結
本章練習
第6章 面向對象(下)
6.1 包裝類
Java為什么要對這些數據進行
緩存呢?
6.2 處理對象
6.2.1 打印對象和toString方法
6.2.2 ==和equals方法
上面程序中在判斷obj是否為Person類的實例時,為何不用obj instanceof Person來判斷呢?
6.3 類成員
6.3.1 理解類成員
6.3.2 單例類
6.4 final修飾符
6.4.1 final成員變量
6.4.2 final局部變量
6.4.3 使用final修飾基本類型變量和引用
類型變量的區別
6.4.4 可執行“宏替換”的final變量
6.4.5 final方法
6.4.6 final類
6.4.7 不可變類
6.4.8 緩存實例的不可變類
6.5 抽象類
6.5.1 抽象方法和抽象類
6.5.2 抽象類的作用
6.6 改進后的接口
6.6.1 接口的概念
6.6.2 改進后的接口定義
6.6.3 接口的繼承
6.6.4 使用接口
6.6.5 接口和抽象類
6.6.6 面向接口編程
6.7 內部類
6.7.1 Java 17改進的非靜態內部類
非靜態內部類對象和外部類對象的關系是怎樣的?
6.7.2 靜態內部類
為什么靜態內部類的實例方法也不能訪問外部類的實例變量呢?
在接口里是否可以定義內部接口?
6.7.3 使用內部類
既然內部類是外部類的成員,那么是否可以為外部類定義子類,在子類中再定義一個內部類來重寫其父類中的內部類呢?
6.7.4 局部內部類
6.7.5 匿名內部類
6.8 Lambda表達式
6.8.1 Lambda表達式入門
6.8.2 Lambda表達式與函數式接口
6.8.3 在Lambda表達式中使用var
6.8.4 方法引用與構造器引用
6.8.5 Lambda表達式與匿名內部類的聯系和區別
6.8.6 使用Lambda表達式調用Arrays的類方法
6.9 枚舉類
6.9.1 手動實現枚舉類
6.9.2 枚舉類入門
6.9.3 枚舉類的成員變量、方法和構造器
6.9.4 實現接口的枚舉類
枚舉類不是用final修飾了嗎?怎么還能派生子類呢?
6.9.5 包含抽象方法的枚舉類
6.10 Java 17引入的密封類
6.10.1 密封類與其子類
6.10.2 密封類與類型轉換
6.10.3 密封接口
6.10.4 密封類與switch模式匹配
6.11 Java 17引入的Record類
6.11.1 Record類入門
6.11.2 Record類的構造器
6.11.3 局部Record類
6.12 對象與垃圾回收
6.12.1 對象在內存中的狀態
6.12.2 強制垃圾回收
6.12.3 finalize方法
6.12.4 對象的軟引用、弱引用和虛引用
6.13 修飾符的適用范圍
6.14 多版本JAR包
6.14.1 jar命令詳解
6.14.2 創建可執行的JAR包
6.14.3 關于JAR包的技巧
6.15 本章小結
本章練習
第7章 Java基礎類庫
7.1 與用戶互動
7.1.1 運行Java程序的參數
7.1.2 使用Scanner獲取鍵盤輸入
7.2 系統相關類
7.2.1 Java 17增強的System類
7.2.2 Runtime類與ProcessHandle
7.3 常用類
7.3.1 Object類
7.3.2 操作對象的Objects工具類
7.3.3 使用Optional操作可空值
7.3.4 String、StringBuffer和StringBuilder類
7.3.5 Math類
7.3.6 ThreadLocalRandom與Random
7.3.7 BigDecimal類
7.4 日期、時間類
7.4.1 Date類
7.4.2 Calendar類
7.4.3 Java 17增強的新式日期、時間包
7.5 正則表達式
7.5.1 創建正則表達式
7.5.2 使用正則表達式
7.6 變量處理和方法處理
7.6.1 使用MethodHandle動態調用方法
7.6.2 使用VarHandle動態操作變量
7.7 國際化與格式化
7.7.1 Java國際化的思路
7.7.2 Java支持的國家和語言
7.7.3 完成程序國際化
7.7.4 使用MessageFormat處理包含占位符的字符串
7.7.5 使用類文件代替資源文件
7.7.6 Java的新式日志API
7.7.7 Java 17增強的NumberFormat
7.7.8 使用JDK 17新增的HexFormat處理十六進制數
7.7.9 使用DateFormat格式化日期、時間
7.7.10 使用SimpleDateFormat格式化日期
7.8 Java 17增強的日期、時間格式器
7.8.1 使用DateTimeFormatter完成格式化
7.8.2 使用DateTimeFormatter解析字符串
7.9 本章小結
本章練習
第8章 Java集合
8.1 Java集合概述
8.2 Collection和Iterator接口
8.2.1 使用Lambda表達式遍歷集合
8.2.2 使用Iterator遍歷集合元素
8.2.3 使用Lambda表達式遍歷Iterator
8.2.4 使用foreach循環遍歷集合元素
8.2.5 使用Predicate操作集合
8.2.6 使用Stream操作集合
8.3 Set集合
8.3.1 HashSet類
hashCode()方法對于HashSet是不是十分重要?
8.3.2 LinkedHashSet類
8.3.3 TreeSet類
8.3.4 EnumSet類
8.3.5 各Set實現類的性能分析
8.4 List集合
8.4.1 改進的List接口和ListIterator接口
8.4.2 ArrayList和Vector實現類
8.4.3 固定長度的List
8.5 Queue集合
8.5.1 PriorityQueue實現類
8.5.2 Deque接口與ArrayDeque實現類
8.5.3 LinkedList實現類
8.5.4 各種線性表的性能分析
8.6 Map集合
8.6.1 與Lambda表達式相關的Map方法
8.6.2 改進的HashMap和Hashtable實現類
8.6.3 LinkedHashMap實現類
8.6.4 使用Properties讀/寫屬性文件
8.6.5 Java 17增強的TreeMap實現類
8.6.6 WeakHashMap實現類
8.6.7 IdentityHashMap實現類
8.6.8 EnumMap實現類
8.6.9 各Map實現類的性能分析
8.7 HashSet和HashMap的性能選項
8.8 操作集合的工具類:Collections
8.8.1 排序操作
8.8.2 查找、替換操作
8.8.3 同步控制
8.8.4 設置不可變集合
8.8.5 新式的不可變集合
8.9 煩瑣的接口:Enumeration
8.10 本章小結
本章練習
第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.3.1 使用類型通配符
9.3.2 設定類型通配符的上限
9.3.3 設定類型通配符的下限
9.3.4 設定泛型形參的上限
9.4 泛型方法
9.4.1 定義泛型方法
9.4.2 泛型方法和類型通配符的區別
9.4.3 “菱形”語法與泛型構造器
9.4.4 泛型方法與方法重載
9.4.5 類型推斷
9.5 擦除和轉換
9.6 泛型與數組
9.7 本章小結
第10章 異常處理
10.1 異常概述
10.2 異常處理機制
10.2.1 使用try...catch捕捉異常
10.2.2 異常類的繼承體系
10.2.3 多異常捕捉
10.2.4 訪問異常信息
10.2.5 使用finally回收資源
10.2.6 異常處理的嵌套
10.2.7 自動關閉資源的try語句
10.3 Checked異常和Runtime異常體系
10.3.1 使用throws聲明拋出異常
10.3.2 方法重寫時聲明拋出異常的限制
10.4 使用throw拋出異常
10.4.1 拋出異常
10.4.2 自定義異常類
10.4.3 catch和throw同時使用
10.4.4 使用throw語句拋出異常
10.4.5 異常鏈
10.5 Java的異常跟蹤棧
10.6 異常處理規則
10.6.1 不要過度使用異常
10.6.2 不要使用過于龐大的try塊
10.6.3 避免使用Catch All語句
10.6.4 不要忽略捕捉到的異常
10.7 本章小結
本章練習
第11章 AWT編程
11.1 GUI和AWT
11.2 AWT容器
11.3 布局管理器
11.3.1 FlowLayout布局管理器
11.3.2 BorderLayout布局管理器
BorderLayout最多只能放置5個組件嗎?那它也太不實用了吧?
11.3.3 GridLayout布局管理器
11.3.4 GridBagLayout布局管理器
11.3.5 CardLayout布局管理器
11.3.6 絕對定位
11.3.7 BoxLayout布局管理器
圖11.15和圖11.16顯示的所有按鈕都緊挨在一起,如果希望像FlowLayout、GridLayout等布局管理器那樣指定組件的間距應該怎么辦?
11.4 AWT常用組件
11.4.1 基本組件
11.4.2 對話框
11.5 事件處理
11.5.1 Java事件模型的流程
11.5.2 事件和事件監聽器
11.5.3 事件適配器
11.5.4 使用內部類實現事件監聽器
11.5.5 使用外部類實現事件監聽器
11.5.6 類本身作為事件監聽器類
11.5.7 使用匿名內部類或Lambda表達式實現事件監聽器
11.6 AWT菜單
11.6.1 菜單條、菜單和菜單項
11.6.2 右鍵菜單
為什么即使沒有給多行文本域編寫右鍵菜單,但是當我在多行文本域上單擊右鍵時也一樣會彈出右鍵菜單?
11.7 在AWT中繪圖
11.7.1 畫圖的實現原理
11.7.2 使用Graphics類
11.8 處理位圖
11.8.1 Image抽象類和BufferedImage實現類
11.8.2 使用ImageIO讀/寫位圖
11.9 剪貼板
11.9.1 數據傳遞的類和接口
11.9.2 傳遞文本
11.9.3 使用系統剪貼板傳遞圖像
11.9.4 使用本地剪貼板傳遞對象引用
11.9.5 通過系統剪貼板傳遞Java對象
11.10 拖放功能
11.10.1 拖放目標
11.10.2 拖放源
11.11 本章小結
本章練習
本書是《瘋狂Java講義》第6版的上冊,第6版保持了前5版系統、全面、講解淺顯、細致的特性,全面新增介紹了Java 12到Java 17的新特性。《瘋狂Java講義》第6版深入介紹了Java編程的相關方面,上、下冊內容覆蓋了Java的基本語法結構、Java的面向對象特征、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC數據庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網絡通信編程和Java反射機制,覆蓋了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下絕大部分的類和接口。第6版重點介紹了Java的模塊化系統,還詳細介紹了Java 12到Java 17引入的塊字符串,instanceof的模式匹配,增強型switch語句、switch表達式及模式匹配,密封類,Record類,以及Java 12到Java 17新增的各種API功能。與前5版類似,第6版并不單純地從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以涉及大量實用案例開發:五子棋游戲、梭哈游戲、仿QQ的游戲大廳、MySQL企業管理器、仿EditPlus的文本編輯器、多線程、斷點下載工具、Spring框架的IoC容器……這些案例既能讓讀者鞏固每章所學的知識,又可以讓讀者學以致用,激發編程自豪感,進而引爆內心的編程激情。第6版相關資料包中包含書中所有示例的代碼和《瘋狂Java實戰演義》的所有項目代碼,這些項目可以作為本書課后練習題的“非標準答案”。如果讀者需要獲取關于課后練習題的解決方法、編程思路,可關注“瘋狂講義”微信服務號,加入讀者微信群后,與作者及本書龐大的讀者群相互交流。《瘋狂Java講義》為所有打算深入掌握Java編程的讀者而編寫,適合各種層次的Java學習者和工作者閱讀,也適合作為大專院校、培訓機構的Java教材。
2021年9月14日,Oracle如約發布了Java 17正式版,并宣布從Java 17開始正式免費,Java邁入新時代。正如Oracle之前承諾的,Java不再基于功能特征來發布新版本,而是改為基于時間來發布新版本:固定每半年發布一個版本,但每3年才發布一個長期支持版(LTS),其他所有版本將被稱為“功能性版本”。“功能性版本”都只有6個月的維護期,相當于技術極客反饋的過渡版,不推薦在企業項目中使用。
因此,Java 17才是上一個LTS版(Java 11)之后最新的LTS版。
雖然目前有些企業可能還在使用早期的Java 8、Java 11,但Spring Boot 3.0已經官宣只支持Java 17,因此建議廣大開發者盡快過渡到Java 17。
為了向廣大工作者、學習者介紹最新、最前沿的Java知識,在Java 17正式發布之前,筆者就已經深入研究過Java 12到Java 17絕大部分可能新增的功能;當Java 17正式發布之后,筆者在第一時間開始了《瘋狂Java講義》(第5版)的升級:使用Java 17改寫了全書所有程序,全面介紹了Java 17的各種新特性。
在以“瘋狂Java體系”圖書為教材的瘋狂軟件教育中心,經常有學生詢問:為什么叫瘋狂Java這個名字?也有一些讀者通過網絡、郵件來詢問這個問題。其實這個問題的答案可以在本書第1版的前言中找到。瘋狂的本質是一種“享受編程”的狀態。在一些不了解編程的人看來,編程的人總面對著電腦,在鍵盤上敲打,這種生活實在太枯燥了。有這種想法的人并未真正了解編程,并未真正走進編程。在外人眼中:程序員不過是在敲打鍵盤;但在程序員心中:程序員敲出的每個字符,都是程序的一部分。
程序是什么呢?程序是對現實世界的數字化模擬。開發一個程序,實際是創造一個或大或小的“模擬世界”。在這個過程中,程序員享受著“創造”的樂趣,程序員沉醉在他所創造的“模擬世界”里:瘋狂地設計、瘋狂地編碼實現。實現過程不斷地遇到問題,然后解決它們;不斷地發現程序的缺陷,然后重新設計、修復它們——這個過程本身就是一種享受。一旦完全沉浸到編程世界里,程序員是“物我兩忘”的,眼中看到的、心中想到的,只有他正在創造的“模擬世界”。
在學會享受編程之前,編程學習者都應該采用“案例驅動”的方式,學習者需要明白程序的作用是:解決問題——如果你的程序不能解決你自己的問題,如何期望你的程序去解決別人的問題呢?那你的程序的價值何在?知道一個知識點能解決什么問題,才去學這個知識點,而不是盲目學習!因此,本書強調編程實戰,強調以項目激發編程興趣。
僅僅看完這本書,你不會成為高手!在編程領域里,沒有所謂的“武林秘籍”,再好的書一定要配合大量練習,否則書里的知識依然屬于作者,而讀者則仿佛身入寶山而一無所獲的笨漢。本書配置了大量高強度的練習題,希望讀者強迫自己去完成這些項目。這些練習題的答案可以參考本書相關資料包中《瘋狂Java實戰演義》的配套代碼。如果需要獲得編程思路和交流,可以關注“瘋狂講義”微信服務號,加群后與廣大讀者和筆者交流。
在《瘋狂Java講義》前5版面市的十多年時間里,無數讀者已經通過本書步入了Java編程世界,而且銷量不斷攀升,這說明“青山遮不住”,優秀的作品,經過時間的沉淀,往往歷久彌新。再次衷心感謝廣大讀者的支持,你們的認同和支持是筆者堅持創作的最大動力。
《瘋狂Java講義》(第3版)的優秀,也吸引了中國臺灣地區的讀者,因此中國臺灣地區的出版社成功引進并出版了繁體中文版的《瘋狂Java講義》,相信繁體版的《瘋狂Java講義》能更好地服務于中國臺灣地區的Java學習者。
廣大讀者對瘋狂Java的肯定、認同、贊譽,既讓筆者十分欣慰,也鞭策筆者以更高的熱情、更嚴謹的方式創作圖書。時至今日,每次筆者創作或升級圖書時,總有一種誠惶誠恐、如履薄冰的感覺,唯恐辜負廣大讀者的厚愛。
筆者非常歡迎所有熱愛編程、愿意推動中國軟件業發展的學習者、工作者對本書提出寶貴的意見,非常樂意與大家交流。中國軟件業還處于發展階段,所有熱愛編程、愿意推動中國軟件業發展的人應該聯合起來,共同為中國軟件行業貢獻自己的綿薄之力。
本書有什么特點
本書并不是一本簡單的Java入門教材,也不是一本“閉門造車”式的Java讀物。本書來自筆者十余年的Java培訓和研發經歷,凝結了筆者一萬余小時的授課經驗,總結了數千名Java學員學習過程中的典型錯誤。
因此,《瘋狂Java講義》具有如下三個特點。
1.案例驅動,引爆編程激情
《瘋狂Java講義》不是知識點的鋪陳,而是致力于將知識點融入實際項目的開發中,所以其中涉及了大量Java案例:仿QQ的游戲大廳、MySQL企業管理器、仿EditPlus的文本編輯器、多線程、斷點下載工具……希望讀者通過編寫這些程序找到編程的樂趣。
2.再現李剛老師課堂氛圍
《瘋狂Java講義》的內容是筆者十余年授課經歷的總結,知識體系取自瘋狂Java實戰的課程體系。書中內容力求再現筆者的課堂氛圍:以淺顯的比喻代替乏味的講解,以瘋狂實戰代替空洞的理論。
本書中包含了大量“注意”“學生提問”部分,這些正是數千名Java學員所犯錯誤的匯總。
3.注釋詳細,輕松上手
為了降低讀者閱讀的難度,書中代碼的注釋非常詳細,幾乎每兩三行代碼就有一行注釋。不僅如此,本書甚至還把一些簡單理論作為注釋穿插到代碼中,力求讓讀者能輕松上手。
本書所有程序中的關鍵代碼均以粗體字標出,這是為了幫助讀者迅速找到這些程序的關鍵點。
本書寫給誰看
如果你僅僅想對Java有所涉獵,那么本書并不適合你;如果你想全面掌握Java語言,并使用Java來解決問題、開發項目,或者希望以Java編程作為你的職業,那么《瘋狂Java講義》將非常適合你。希望本書能引爆你內心潛在的編程激情,如果本書能讓你產生廢寢忘食的感覺,那筆者就非常欣慰了。

2022-10-30
pagetop