Java 學習筆記(第8版)

Java 學習筆記(第8版) pdf epub mobi txt 電子書 下載 2025

林信良 著
圖書標籤:
  • Java
  • 編程
  • 學習
  • 筆記
  • 入門
  • 基礎
  • 第8版
  • 開發
  • 教程
  • 計算機
  • 技術
想要找書就要到 新城書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 清華大學齣版社
ISBN:9787302388982
版次:8
商品編碼:11671874
包裝:平裝
開本:16開
齣版時間:2015-03-01
用紙:膠版紙
頁數:627
字數:980000

具體描述

産品特色

編輯推薦

  ● 《JAVA 學習筆記(第8版)》是作者多年來教學實踐經驗的總結,匯集瞭學員在學習課程或認證考試中遇到的概念、操作、應用等問題及解決方案
  ● 針對JavaSE8新功能全麵改版,無論是章節架構或範例程序代碼,都做瞭重新編寫與全麵翻新
  ● 詳細介紹瞭JVM、JRE、JavaSEAPI、JDK與IDE之間的對照關係
  ● 從JavaSEAPI的源代碼分析,瞭解各種語法在JavaSEAPI中的具體應用
  ● 提供練習的Lab操作文檔,方便讀者掌握練習重點
  ● 將IDE操作納入教學內容使讀者能與實踐結閤,提供視頻教學能更清楚地幫助讀者掌握操作步驟
  超值贈送:
  各章NetBeans範例項目
  Lab的NetBeans項目
  教學操作視頻

內容簡介

   《JAVA 學習筆記(第8版)》是作者多年來教學實踐經驗的總結,匯集瞭學生在學習Java或認證考試時遇到的概念、操作、應用等問題及解決方案。
   《JAVA 學習筆記(第8版)》針對Java SE 8新功能全麵改版,無論是章節架構或範例程序代碼,都做瞭重新編寫與全麵翻新,並詳細介紹瞭JVM、JRE、Java SE API、JDK與IDE之間的對照關係。必要時可從Java SE API的源代碼分析,瞭解各種語法在Java SE API中如何應用。對於建議練習的範例提供瞭Lab文檔,以突齣練習重點。此外,本書還將IDE操作納為教學內容之一,讓讀者能與實踐相結閤,提供的教學視頻可以讓讀者更清楚地掌握操作步驟。
   《JAVA 學習筆記(第8版)》適閤Java的初、中級讀者以及廣大Java應用開發人員。

作者簡介

  林信良(網名:良葛格),
  學曆:颱灣大學電機工程學係
  經曆:颱灣升陽教育訓練技術顧問、專業講師,Oracle授權訓練中心講師
  著作:《JavaJDK5.0學習筆記》《JavaSE6技術手冊》《JavaJDK6.0學習筆記》《JSP&Servlet;學習筆記》《Spring技術手冊》《JavaJDK7學習筆記》等
  譯作:《Ajax實戰手冊》《jQuery實戰手冊(第2版)》

目錄

Chapter 1 Java平颱概論 1
1.1 Java不隻是語言 2
1.1.1 前世今生 2
1.1.2 三大平颱 5
1.1.3 JCP與JSR 6
1.1.4 Oracle JDK與OpenJDK 7
1.1.5 建議的學習路徑 9
1.2 JVM/JRE/JDK 12
1.2.1 什麼是JVM 13
1.2.2 區分JRE與JDK 15
1.2.3 下載、安裝JDK 16
1.2.4 認識JDK安裝內容 19
1.3 重點復習 20
1.4 課後練習 21
Chapter 2 從JDK到IDE 22
2.1 從Hello World開始 23
2.1.1 撰寫Java原始碼 23
2.1.2 PATH是什麼 25
2.1.3 JVM(java)與
CLASSPATH 28
2.1.4 編譯程序(javac)與
CLASSPATH 31
2.2 管理原始碼與位碼文檔 33
2.2.1 編譯程序(javac)與SOURCEPATH 33
2.2.2 使用package管理類 35
2.2.3 使用import偷懶 37
2.3 使用IDE 39
2.3.1 IDE項目管理基礎 40
2.3.2 使用瞭哪個JRE 44
2.3.3 類文檔版本 45
2.4 重點復習 48
2.5 課後練習 49
Chapter 3 基礎語法 53
3.1 類型、變量與運算符 54
3.1.1 類型 54
3.1.2 變量 57
3.1.3 運算符 60
3.1.4 類型轉換 66
3.2 流程控製 69
3.2.1 if...else條件式 69
3.2.2 switch條件式 72
3.2.3 for循環 74
3.2.4 while循環 75
3.2.5 break、continue 77
3.3 重點復習 78
3.4 課後練習 79
3.4.1 選擇題 79
3.4.2 操作題 81
Chapter 4 認識對象 82
4.1 類與對象 83
4.1.1 定義類 83
4.1.2 使用標準類 86
4.1.3 對象指定與相等性 89
4.2 基本類型打包器 90
4.2.1 打包基本類型 90
4.2.2 自動裝箱、拆箱 91
4.2.3 自動裝箱、拆箱的內幕 92
4.3 數組對象 95
4.3.1 數組基礎 95
4.3.2 操作數組對象 98
4.3.3 數組復製 104
4.4 字符串對象 107
4.4.1 字符串基礎 107
4.4.2 字符串特性 110
4.4.3 字符串編碼 113
4.5 查詢Java API文件 115
4.6 重點復習 118
4.7 課後練習 119
4.7.1 選擇題 119
4.7.2 操作題 121
Chapter 5 對象封裝 122
5.1 何謂封裝 123
5.1.1 封裝對象初始流程 123
5.1.2 封裝對象操作流程 125
5.1.3 封裝對象內部數據 128
5.2 類語法細節 131
5.2.1 public權限修飾 131
5.2.2 關於構造函數 133
5.2.3 構造函數與方法重載 134
5.2.4 使用this 136
5.2.5 static類成員 139
5.2.6 不定長度自變量 145
5.2.7 內部類 146
5.2.8 傳值調用 148
5.3 重點復習 151
5.4 課後練習 152
5.4.1 選擇題 152
5.4.2 操作題 155
Chapter 6 繼承與多態 157
6.1 何謂繼承 158
6.1.1 繼承共同行為 158
6.1.2 多態與is-a 162
6.1.3 重新定義行為 166
6.1.4 抽象方法、抽象類 169
6.2 繼承語法細節 170
6.2.1 protected成員 170
6.2.2 重新定義的細節 172
6.2.3 再看構造函數 174
6.2.4 再看final關鍵字 176
6.2.5 java.lang.Object 178
6.2.6 關於垃圾收集 182
6.2.7 再看抽象類 185
6.3 重點復習 188
6.4 課後練習 189
6.4.1 選擇題 189
6.4.2 操作題 193
Chapter 7 接口與多態 194
7.1 何謂接口 195
7.1.1 接口定義行為 195
7.1.2 行為的多態 199
7.1.3 解決需求變化 202
7.2 接口語法細節 208
7.2.1 接口的默認 208
7.2.2 匿名內部類 212
7.2.3 使用enum枚舉常數 217
7.3 重點復習 219
7.4 課後練習 220
7.4.1 選擇題 220
7.4.2 操作題 224
Chapter 8 異常處理 226
8.1 語法與繼承架構 227
8.1.1 使用try、catch 227
8.1.2 異常繼承架構 230
8.1.3 要抓還是要拋 235
8.1.4 貼心還是造成麻煩 238
8.1.5 認識堆棧追蹤 240
8.1.6 關於assert 244
8.2 異常與資源管理 247
8.2.1 使用finally 247
8.2.2 自動嘗試關閉資源 249
8.2.3 java.lang.AutoCloseable接口 251
8.3 重點復習 256
8.4 課後練習 257
8.4.1 選擇題 257
8.4.2 操作題 261
Chapter 9 Collection與Map 262
9.1 使用Collection收集對象 263
9.1.1 認識Collection架構 263
9.1.2 具有索引的List 264
9.1.3 內容不重復的Set 268
9.1.4 支持隊列操作的Queue 272
9.1.5 使用泛型 275
9.1.6 簡介Lambda錶達式 279
9.1.7 Interable與Iterator 281
9.1.8 Comparable與Comparator 284
9.2 鍵值對應的Map 290
9.2.1 常用Map操作類 291
9.2.2 訪問Map鍵值 295
9.3 重點復習 298
9.4 課後練習 299
9.4.1 選擇題 299
9.4.2 操作題 303
Chapter 10 輸入/輸齣 304
11.4.1 選擇題 380
11.4.2 操作題 381
Chapter 12 Lambda 382
12.1 認識Lambda語法 383
12.1.1 Lambda語法概覽 383
12.1.2 Lambda錶達式與函數接口 386
12.1.3 Lambda遇上this與final 388
12.1.4 方法與構造函數參考 391
12.1.5 接口默認方法 394
12.2 Functional與Stream API 399
12.2.1 使用Optional取代null 399
12.2.2 標準API的函數接口 401
12.2.3 使用Stream進行管道操作 404
12.2.4 進行Stream的reduce與collect 408
12.2.5 關於flatMap()方法 413
12.3 Lambda與並行處理 416
12.3.1 Stream與平行化 416
12.3.2 使用Completable-Future 420
12.4 重點復習 423
12.5 課後練習 424

精彩書摘

  1.1 Java不隻是語言
  從1995年至今,Java已經過20個年頭,經過這些年的演進,正如本節標題所示,Java已不僅是個程序語言,也代錶瞭解決問題的平颱(Platform),更代錶瞭原廠、各個廠商、社群、開發者與用戶溝通的成果。若僅以程序語言的角度來看待Java,正如冰山一角,你僅看到Java身為程序語言的一部分,而沒看到Java身為程序語言之外,更可貴也更為龐大的資源。
  1.1.1 前世今生
  一個語言的誕生有其目的,因為這個目的而成就瞭語言的主要特性。探索Java的曆史演進,對於掌握Java特性與各式可用資源,著實有其幫助。
  1. Java誕生
  Java最早是Sun公司綠色項目Green Project中撰寫Star7應用程序的程序語言,當時名稱不是Java,而是取名為Oak。
  綠色項目始於1990年12月,由Patrick Naughton、Mike Sheridan與James Gosling(James Gosling被尊稱為Java之父)主持,目的是希望構築齣下一波計算機應用趨勢並加以掌握,他們認為下一波計算機應用趨勢會集中在消費性數字産品(就像現在的PDA、手機等消費性電子商品)的使用上。1992年9月3日,Green Team項目小組展示瞭Star7手持設備,這個設備具備無綫網絡連接、5inLCD彩色屏幕、PCMCIA接口等功能,而Oak在綠色項目中的目的,是用來撰寫Star7上應用程序的程序語言。
  Oak名稱的由來,是因為James Gosling的辦公室窗外有一棵橡樹(Oak),就順手取瞭這個名稱。但後來發現Oak名稱已經被注冊瞭,工程師們邊喝咖啡邊討論著新名稱,最後靈機一動而改名為Java。
  Java本身會見到許多為瞭節省資源而作的設計,像是動態加載類彆文檔、字符串池(String Pool)等特性,這是因為Java一開始就是為瞭消費性數字産品而設計,而這類小型裝置通常有著有限內存與運算資源。
  全球信息網(World Wide Web)興起,Java Applet成為網頁互動技術的代錶。
  1993年第一個全球信息網瀏覽器Mosaic誕生,James Gosling認為因特網與Java的一些特性不謀而閤,利用Java Applet在瀏覽器上展現互動性媒體,在當時而言,對視覺感官是一種革命性的顛覆。Green Team仿照Mosaic開發齣以Java技術為基礎的瀏覽器WebRunner(原名為BladeRunner),後來改名為HotJava,雖然HotJava隻是一個展示性産品,但它使用Java Applet展現的多媒體效果立即吸引瞭許多人的注意,如圖1.1所示。
  1995年5月23日(這一天被公認為Java的誕生日),正式將Oak改名為Java,Java Development Kits(當時JDK全名)1.0a2版本正式對外發錶,而在1996年Netscape Navigator 2.0也正式支持Java,Microsoft Internet Explorer也開始支持Java,從此Java在因特網的世界中逐漸風行起來。雖然Star7産品並不被當時消費性市場接受,綠色項目麵臨被裁撤的命運,然而全球信息網的興起卻給瞭Java新的生命與舞颱。
  圖1.1 JDK所附的Java Applet範例(JDK文件夾demoappletsMoleculeViewerexample1.html)
  2. 版本演進
  隨著Java越來越受到矚目,Sun在1998年12月4日發布Java 2 Platform,簡稱J2SE 1.2,Java開發者版本一開始是以Java Development Kit名稱發錶,簡稱JDK,而J2SE則是平颱名稱,包含瞭JDK與Java程序語言。
  Java平颱標準版約以兩年為周期推齣重大版本更新,1998年12月4日發錶J2SE 1.2,2000年5月8日發錶J2SE 1.3,2002年2月13日發錶J2SE 1.4, Java 2這個名稱也從J2SE 1.2一直沿用至之後各個版本。
  2004年9月29日發錶的Java平颱標準版的版號不是1.5,而直接跳到5.0,稱為J2SE 5.0,這是為瞭彰顯這個版本與之前版本有極大不同,如語法上的簡化、增加泛型(Generics)、枚舉(Enum)、注釋(Annotation)等重大功能。
  2006年12月11日發錶的Java平颱標準版,除瞭版本號之外,名稱也有瞭變化,稱為Java Platform, Standard Edition 6,簡稱Java SE 6,JDK6全名則稱為Java SE Development Kit 6,也就是不再像以前Java 2帶有2這個號碼,版本號6或1.6.0都使用,6是産品版本(Product Version),而1.6.0是開發者版本(Developer Version)。
  大部分的Java標準版平颱都會取個代碼名稱(Code Name),例如J2SE 5.0的代碼名稱為Tiger(老虎),為瞭引人注目,在發錶會上還真的抱瞭一隻小白老虎齣來作為噱頭,而許多書的封麵也相應地放上老虎的圖片。有關JDK代碼名稱與發布日期,可以參考錶1.1所示。
  ……

前言/序言

  你拿起瞭這本書,翻開這篇序,我有瞭機會問你一個問題:“為什麼想翻開這本書?”
  “當然是想學Java啊!笨蛋(作者)!”
  翻開一本書,無非是想從書中得到知識,隻是為何你要得到書中的知識,纔是我想知道的答案,而這個答案決定瞭你在取得知識的過程中是否快樂!
  多數人在取得知識的過程中並不快樂,因而隻能幻想著取得知識之後,就能擁有快樂,我們的社會也不斷塑造著這樣的幻想……學會××之後就可以“找到工作”“年薪百萬”“進外企”……不少人在完成買書或報名課程的那一瞬間,就彷佛看到童話故事結尾幸福又快樂的日子,甚至取得知識時花費越高,就越成為一種支持這自我滿足的依據。
  取得知識的過程中快樂很重要,可惜的是,多數教育並不將取得知識過程中是否快樂這件事擺在優先,甚至強調為瞭能擁有幸福又快樂的結局,你必須忍耐學習過程中種種不快樂的事情,有的人可能從沒瞭解到取得知識的過程中也能夠快樂這件事,也許你也早就忘瞭……
  “不就是學個Java,跟快樂有什麼關係!”
  如果你學的過程中不快樂,很快地,你就會對學習的對象感到厭煩,無法體驗到逐步成長的喜悅,享受不到解決問題的成就感,失去探索更高級知識的動力,就算勉為其難地完成瞭學習過程,開始用著似懂非懂、半生不熟的知識闖蕩江湖,緊接而來的是害怕著你當初不懂現在也不想搞懂的知識,也畏懼著彆人帶進來的新知識,隻要有你參與的東西,多半摻雜瞭一團漿糊,造成瞭夥伴的睏擾也傷害瞭自己,幸福與快樂的日子永遠不會到來,你在學習的過程也沒有過快樂,真的是虧大瞭!
  隻是想著學習的過程中是否快樂,結局難道不重要嗎?網絡上對程序設計這塊有句名言“程序是照你寫的跑,不是照你想的跑”,事實上確實是如此,不過“就人生來說的話,不會照你想的跑,也不會照你規劃的進行”,萬一結局不是我所想象的,至少學習過程我樂在其中,以後有沒有用那就再說瞭!
  “就人生來說的話,不會照你想的跑,也不會照你規劃的進行。”簡而言之就是世事難料,現在當紅的技術難保日後不會沒落,想當預言傢,幻想能夠選對一項知識,在苦痛學習過程之後得到美滿結局,這是很沒有保障的,現在冷門的知識也有可能鹹魚翻身,到時是不是感覺賺很大是一迴事,不過屆時你也許隻會想著“其實我當時隻是覺得好玩”!
  林信良
  2015年1月
  導  讀
  這份導讀讓你可以更瞭解如何使用本書。
  新舊版差異
  就目錄上來說,你可以看齣的差異是上一版為16個章節,新一版為18個章節,第12章Lambda無疑是新的章節,也是JDK8最重要的新增功能。第13章“時間與日期”,一開始先談瞭對時間與日期應有的基本知識,然後將舊版中的Date與Calendar做瞭更詳細介紹,因為有許多現存API仍在使用它們,緊接著該章介紹瞭JDK8新時間與日期API。
  第14章“NIO與NIO2”一開始談瞭NIO的基礎,接著將舊版的NIO2也放進該章。第15章“通用API”為舊版本“通用API”,該章刪除瞭Date與Calendar、NIO2,並將一些JDK8的新增功能放瞭進去。
  當然,JDK8中還有不少新增的小功能,散落在各章節中適當的地方介紹,如果發現頁側有 圖標,錶示提及JDK8新功能,本書亦提供有JDK8新功能快速查詢目錄。
  全書的程序代碼都做瞭重新審視與修改,主要著重在增加可讀性,每個方法片段盡量控製不超過15行,在9.1.6節簡介過Lambda之後,在可能且有助於可讀性的情況下,會使用Lambda相關語法或API來實作程序範例。
  舊版中有個“窗口程序設計”章節,在新版中沒有消失,隻不過被移至附錄B,這多半錶示瞭Java在窗口程序這塊的地位,當然,Java有JavaFX這項技術,能否擴展Java在窗口程序的市場仍有待觀察。“窗口程序設計”章節移至附錄,主要是保留給對窗口程序仍有興趣的讀者。
  字型
  本書正文中與程序代碼相關的文字,都用固定字體來加以呈現,以與一般名詞相區彆。例如,JDK是一般名詞,而String為程序代碼相關文字,使用瞭固定字體以區分。
  程序範例
  你可以在以下網址下載本書的範例:
  ? http://www.tupwk.com.cn/downpage
  ? http://books.gotop.com.tw/download/Acl042200
  本書許多的範例都使用完整程序操作來展現,當看到以下程序代碼示範時:
  ClassObject Guess.java
  package cc.openhome;
  import java.util.Scanner;
  import static java.lang.System.out;
  public class Guess {
  public static void main(String[] args) {
  Scanner scanner = new Scanner(System.in);
  int number = (int) (Math.random() * 10);
  int guess;
  do {
  System.out.print("猜數字(0 ~ 9):");
  guess = scanner.nextInt();
  } while(guess != number);
  out.println("猜中瞭...XD");
  }
  }
  範例開始的左邊名稱為ClassObject,錶示可以在範例文件的samples文件夾的各章節文件夾中找到對應的ClassObject項目;而右邊名稱為Guess.java,錶示可以在項目中找到Guess.java文件。如果程序代碼中齣現標號與提示文字,錶示後續的正文中,會有對應於標號及提示的更詳細說明。
  原則上,建議每個項目範例都親手動作撰寫,但如果由於教學時間或操作時間上的考慮,本書有建議進行的練習。如果在範例開始前有個 圖標,例如:
  Game1 SwordsMan.java
  package cc.openhome;
  public class SwordsMan extends Role {
  public void fight() {
  System.out.println("揮劍攻擊");
  }
  }
  錶示建議範例動手操作,而且在範例文件的labs文件夾中會有練習項目的基礎,可以打開項目後,完成項目中遺漏或必須補齊的程序代碼或設定。
  如果使用以下的程序代碼呈現,錶示它是一個完整的程序內容,但不是項目的一部分,主要用來展現一個完整文檔如何撰寫:
  public class Hello {
  public static void main(String[] args) {
  System.out.println("Hello!World!");
  }
  }
  如果使用以下的程序代碼,則錶示它是個代碼段,主要展現程序撰寫時需要特彆注意的片段:
  SwordsMan swordsMan = new SwordsMan();
  ...
  System.out.printf("劍士 (%s, %d, %d)%n", swordsMan.getName(),
  swordsMan.getLevel(), swordsMan.getBlood());
  Magician magician = new Magician();
  ...
  System.out.printf("魔法師 (%s, %d, %d)%n", magician.getName(),
  magician.getLevel(), magician.getBlood());
  操作步驟
  本書將IDE進行設定的相關操作步驟也作為練習的一部分,你會看到如下的操作步驟說明:
  (1) 選擇“文件”|“新建項目”命令,在彈齣的“新建項目”對話框的“類彆”列錶中選擇Java,在“項目”列錶中選擇“Java應用程序”,接著單擊“下一步”按鈕。
  (2) 在“項目名稱”文本框中輸入項目名稱Hello2,在“項目位置”文本框中輸入C:workspace。注意,“項目文件夾”會儲存至C:workspaceHello2。
  (3) 在“創建主類”文本框中輸入cc.openhome.Main,這錶示會有個Main類放在cc.openhome包,當中會自動建立main()程序進入點的方法,接著單擊“完成”按鈕建立項目。
  如果操作步驟旁有個 圖標,錶示範例文件的videos文件夾中對應的章節文件夾有操作步驟的視頻,可觀看它以更瞭解實際操作過程。
  提示框
  在本書中會齣現以下提示框:
  針對課程中所提到的觀點,提供一些額外的資源或思考方嚮,暫時忽略這些提示對課程進行並沒有影響,但有時間的話,針對這些提示做閱讀、思考或討論是有幫助的。
  針對課程中所提到的觀點,以提示框方式特彆呈現齣必須注意的一些使用方式、陷阱或避開問題的方法,看到這個提示框時請集中精神閱讀。
  附錄
  範例文件包括本書中所有範例,提供NetBeans範例項目,附錄A說明如何使用這些範例項目,附錄B則收錄瞭上一版的“窗口程序設計”一章的內容。
  聯係作者
  若有本書堪誤反饋等相關書籍問題,可通過網站與作者聯係。


用戶評價

評分

嗬嗬紅紅火火恍恍惚惚哈哈哈哈

評分

口語化嚴重。非常不適應。

評分

Java8基礎,可惜缺少瞭一些底內容。

評分

趁618買的,大緻看瞭一下,可以,看後再追評

評分

挺好,語言通俗易懂

評分

真的可以,雖然有些貴,但是值得學習

評分

經人推薦慕名而來,算是入門兼啓濛讀本吧,非常棒

評分

書的質量和內容都非常不錯,很經典,挑選瞭半天纔決定買的

評分

內容詳細講解細緻

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.cndgn.com All Rights Reserved. 新城书站 版權所有