原创 Core Java(第1-3章)

第一章 概述1996年,jdk1發佈。Java並不只是一種語言,還是一個完整的平臺,有一個龐大的庫,其中包含了很多可重用的代碼,還提供了一個諸如安全性、跨操作系統的可移植性、垃圾自動收集等服務的執行環境。簡單性、面向對象、分佈式、健壯性、安

原创 HashMap源碼詳解:Core Java 9.3

Map接口keySetvaluessizecontainsKeyputremoveentrySetisEmptycontainsValuegetclear以下爲部分JDK1.8添加的默認方法,defaultgetOrdefault(Obje

原创 紅黑樹、B樹、B+樹

參考:微信知乎此三者的主要應用是降低大數據量檢索時的時間複雜度。JAVA的hashMap中,當一個桶中的元素個數超過…時,桶內數據的存儲結構會由鏈表改成紅黑樹。MySql數據庫中,對於數據量超大的數據進行索引時,會採用B+樹的存儲結構。(索

原创 流程控制及break、continue、label的用法:Core Java 3.8

while / do while確定循環:for循環for循環語句是有確定循環次數的,因此稱爲確定循環。for循環語句用每次迭代後更新的計數器或者變量的方式來控制循環次數。for 語句內定義的變量,其作用域僅在for循環語句和循環體內部。也

原创 leetCode:合併有序鏈表

認爲題目中的鏈表是指java的LinkedList的解法publicstaticvoidmain(String[]args){Integer[]a={3,5,9,12,14,18,21};Integer[]b={2,3,7,15,19,22

原创 一文帶你輕鬆把堆排序相關概念、原理及JAVA實現搞的明明白白

流暢閱讀本文的前置條件是:瞭解樹,二叉樹這兩種數據結構。堆與堆排序首先要明確:堆排序是指利用大頂堆(或者小頂堆)來實現排序,達到使數據有序的目的。而非是將排序的結果存儲在堆這樣一個數據結構中。堆二叉堆:用數組存儲的完全二叉樹,也稱堆。堆中的

原创 java中default關鍵字的語法語義

switch-case-default接口中的方法的默認實現

原创 UML圖符號:Core Java 4.1

類之間的關係在類之間,最常見的關係有依賴(“ uses a ”)繼承(“ is a ”)聚合(“ has a ”)依賴:如果類A的方法操縱B類的對象,我們就說類A依賴於類B。如Order類使用Account類是因爲Order對象需要通過Ac

原创 Java Collection:Core Java 9

先進先出:Queue。add到尾部,remove在頭部。一、數組1、數組長度不可變。2、只有在知道下標的情況下查找才高效。3、刪除和插入的空間複雜度高。4、新增簡單二、HashMap1、容量可變2、可以根據Key通過hash算法得到索引、查

原创 代理Proxy:Core Java 6.5

利用代理可以在運行時創建一個實現了一組接口的新類。這種功能只有在編譯時無法確定需要實現哪個接口時才使用。對於應用程序設計人員來說,遇到這種情況的機會很少。這是一種高級技術,對於系統程序設計人員來說,代理帶來的靈活性十分重要。代理如何工作的代

原创 異常:Core Java 7.1

異常:程序運行過程中,由於程序本身的錯誤或者外部環境的影響,而出現的異常情況斷言:爲確保程序能正常運行或者排查程序出現異常的原因,需要編寫一些測試代碼進行測試。但程序正式運行時,是不允許測試代碼工作的。如果直接刪掉這些測試代碼,再次遇到異常

原创 調試技巧:Core Java 7.6

打印變量System.out.println(“x=”+x);Logger.getGlobal().info(“this=”+this);每個類一個main方法這樣就可以對每個類進行單元測試Junit組織測試用例套件日誌代理,對JDK源碼調

原创 日誌:Core Java 7.5

開發人員應該用logger.fine( obj )來取代System.out.println( obj );當調用 System.out.println 時, 實際上生成了下面的日誌消息:logger.fine();JDK的日誌系統有以下幾

原创 jdk8的比較與排序(Comparator & sort):Core Java

ComparablepublicinterfaceComparable<T>{intcompareTo(T other);}這是一個函數式接口,用於比較和排序,jdk提供了一些工具類對一組對象進行排序,前提是這些對象所屬類必須實現了Comp

原创 自定義類中equals方法的一般實現中instanceof與強制轉換的區別:Core Java 5.2.1

JDK提供的工具類Object :: equalspublicbooleanequals(Object otherObj){returnthis==otherObj;}比較存儲地址是否相等。String :: equalspublicboo