原创 Java反射

反射的概念: 作用:在Java中,如果想要在除了編譯器之外的運行期也能夠檢查類,接口,變量以及方法的信息就可以通過反射動態的進行獲取。並且在Java大量的流行框架中例如Spring,都是以反射爲基礎來進行構建。所以反射的地位在Jav

原创 Java8中提供的收集器

Java8中提供的收集器 作用:Collector(收集器會對元素引用一個轉換函數,並且將結果累計在一個數據結構中,如toList,從而產生一個最終輸出) Java中的預定義收集器(預定義收集器定義在Collectors中,由Ja

原创 Java8使用流操作集合

Java8集合操作正確方式 流Api是Java8提供的新的api,用來聲明式地處理數據集合。 1 一個Demo案例: 需要將List集合中的重量大於0.3kg的水果篩選出來進行排序後拿出它的名字最後放到另一個List中去。

原创 LinkedList源碼詳解(2)

LinkedList源碼詳解(2) 說明:上一篇對Linked的增刪改查的源碼做了解析,本篇主要是對剩餘的一些方法在進行分析。(主要是對雙向鏈表的特有的方法) peek操作(查看不刪除) peek() peekFirst()

原创 LinkedList源碼詳解(1)

LinkedList源碼詳解 定義:LinkedList是一個實現了Deque和List接口的雙向鏈表集合,同時繼承了AbstractSequentialList。可以存儲任意元素包括null。 底層數據結構 特點: Link

原创 裝飾模式詳解

裝飾模式 理解:當我們需要動態的添加行爲的時候,可以通過裝飾模式更好的進行擴展。並且對於被裝飾的對象和裝飾者需要是同一類型。 定義: 裝飾者模式動態地將責任鏈附加到對象上。若要擴展功能,裝飾者提供了比繼承更有彈性的替代方案。 裝飾

原创 ArrayList源碼2

ArrayList底層源碼詳解(擴展) ArrayList(擴展) 除了常用的增刪改查,ArrayList還提了其他的操作集合的方法,他們的源碼實現通過這篇文章來進行解析。 addAll(Collection<? extends E

原创 Java中的初始化和清理

初始化與清理 構造函數初始化 在java類中存在一個默認構造函數,當創建對象的時候會默認調用實現對象的初始化。 public class Demo { private int height = 100; /**

原创 Lambda表達式詳解

定義:Lambda表達式可以理解爲簡潔地表示可傳遞的匿名函數的一種方式:它沒有名稱、有參數列表、函數主體、返回類型、可能還會有一個可以拋出的異常列表。 1 詳細解釋 1 匿名:因爲它不像普通方法那樣有一個明確名稱。 2 函數

原创 Java異常解析

Java中的異常處理機制(在Java有一套完整的異常處理機制,當程序運行時拋出錯誤的時候就會就可以通過該機制來處理不同的異常) 1. Java中異常類大體結構圖(圖來源:網絡) 2. 異常處理的基本語法 try{

原创 觀察者模式

觀察者模式 理解:觀察者模式通過主題和觀察者的形式來通知觀察者主題即時更新的信息。主題有修改信息的功能,並且需要提供註冊和解除功能來使觀察者可以隨時訂閱來接收消息或者取消訂閱選擇不接受消息,因此主題還需要有一個通知的功能來推送消息給

原创 策略模式詳解

1 理解:對於需要變化的行爲,將他們獨立出來。通過不同的實現類來實現他們具體所要表現的功能。然後在主類中持有這些定義好的接口變量並且在具體繼承類中來注入具體的行爲,通過多態的方式就可以不需要修改主類中的代碼來調用特定的行爲。其中不同的

原创 ArrayList源碼詳解

ArrayList 底層源碼詳解 定義: 一個實現了List接口的可調整大小的數組,實現了List接口所有的可選操作並且可以容納所有類型的對象包括null,同時提供了方法來改變List容量的大小。 特徵: 1 可自動擴容,和vect