總以爲書中太囉嗦,看完總結後方便往後回憶,本想偷懶網上找別人的總結,無奈找不到好的,只好自食其力,儘可能總結得最好。html
第一章 對象導論編程
看到對象導論以爲這本書
設計模式
目錄:數組
1.1 抽象過程
1.2 每一個對象都有一個接口
1.3 每一個對象都提供服務
1.4 被隱藏的具體實現
1.5 複用具體實現
1.6 繼承
1.7 伴隨多態的可互換對象
1.8 單根繼承結構
1.9 容器
1.10 對象的建立和生命期
1.11 異常處理:處理錯誤
1.12 併發編程
1.13 Java與Internet
1.14 總結多線程
以爲看完終於要精通Java了,然而本章只是介紹開發方法概述在內的OOP的基本概念,瞭解對象的重要性。併發
1.1 抽象過程框架
經過其餘語言的缺點來講明面嚮對象語言的好。post
彙編語言是對底層機器的輕微抽象、命令式語言(如C、BASIC)是對彙編語言的一種抽象,彙編語言直接控制計算機的硬件,命令式語言則基於計算機結構解決問題。OOP語言基於問題的結構解決問題,不會受限於任何特定類型的問題。url
1.2 每一個對象都有一個接口spa
接口:肯定了對某一特定對象所能發出的請求 對象:類型名稱
看文字描述已經上升到哲學問題,從下面例子很好理解。
Light lt = new Light(); //對象
lt.on;//接口向對象發出請求
1.3 每一個對象都提供服務
好處:一、有助於提升軟件的內聚性 二、每一個對象均可以很好的完成一項任務,可是它並不試圖作更多的事情。
理解:設計一個音樂播放器,有歌詞顯示、播放,暫停、背景顯示(服務),這時不要只提供一個對象(它並不試圖作更多的事情),能夠提供三個對象,完成三個服務,三個對象提供三個服務完成一個音樂播放器(內聚性)。
1.4 被隱藏的具體實現
從Github下載一個框架,個人目標是實現快速應用開發,框架只需向我提供方法的調用便可,其餘的隱藏了也不會影響個人調用。
訪問權限:public > protected(包+基類) > 包訪問權限(沒有關鍵詞時默認) > private
1.5 複用具體實現
複用指在一個類中使用繼承或者組合。
1.6 繼承
從父類中派生出子類,子類能吸取父類的數據屬性和行爲,並能擴展新的能力。
1.7 伴隨多態的可互換對象
class Shape{ draw(); erase(); move(); getColor(); setColor(); }
void doSomething(Shape shape){ shape.erase(); //...
shape.draw(); } Circle circle = new Circle(); //父類爲Shape
Triangle triangle = new Triangle(); //父類爲Shape
Line line = new Triangle(); //父類爲Shape
doSomething(circle); doSomething(triangle); doSomething(line);
對doSomething的調用會自動地正確處理,而無論對象的確切類型(可互換對象)。
doSomething(Shape shape)的執行是指你是Shape類或者父類爲Shape,而不是你是Circle類就執行這樣,你是Triangle 類就執行那樣。理解了能夠去看設計模式之策略模式。
這裏還涉及到向上轉型,以下圖:
1.8 單根繼承結構
一、全部類都繼承自單一的基類
public class JianCheng extends Object { }
public class JianCheng { public static void main(String[] args) { JianCheng jiancheng= new JianCheng(); System.out.println(JianCheng instanceof Object); } }
輸出:true //說明 JianCheng 類默認繼承 Object
二、保證全部對象具備某些功能
Object 的方法會被子類所繼承,例如: clone()、equals(Object obj)、toString() 等方法。
三、垃圾回收變得容易
對象保證有其(Object)類型信息,所以不會因沒法肯定對象的類型而陷入僵局。這對於系統級操做顯得十分重要(如異常處理)。
1.9 容器
持有對其餘對象的引用稱爲容器(集合),例如List(用於存儲序列),Map(也被稱爲關聯數組,用來創建對象之間的關聯),Set(每種對象類型只持有一個),以及諸如隊列、樹、堆棧等更多的構件。
ArrayList與LinkedList的比較,前者是數組的形狀,隨機訪問元素開銷小,但插入、刪除操做開銷大。後者是鏈表形狀,插入、刪除操做方便。
1.10 對象的建立和生命期
認識對象置於堆棧和堆的區別
Java 採用了動態內存分配的方式,使用 new 關鍵字建立對象,編譯器能夠肯定對象存活的時間,並經過「垃圾回收器機制」自動銷燬它。
1.11 異常處理:處理錯誤
異常是一種對象,從出錯地點被拋出,並被特定類型的錯誤異常處理器捕獲,經過try--catch或者throw。異常處理就像是與程序正常執行路徑並行的、在錯誤發生時執行的另外一條路徑。
運行時的異常,只有當代碼運行時才能發現異常,並不須要try-catch。
1.12 併發編程
同一時刻處理多個任務的思想,也就是多線程運行。
同步多線程運行有一個隱患,共享資源。A原本想使用a=Love You 但在某個線程致使a = hate you 而後A使用了,這樣A確定告白失敗。
1.14 總結
第一章全是理論知識,並且不少知識點明明很容易卻長篇大論致使難以理解,乾貨有卻夾雜太多虛的了。