原创 Mysql你必須知道的查詢語句

引言 在Mysql數據庫的操作中有核心的兩種語言,一種是DDL(Data Definition Language),翻譯爲數據定義語言,它主要是對數據庫,表的創建,修改和刪除。另外一種叫DML(Data Manipulation

原创 java實現排序(4)-堆排序

引言 在上一篇博文中,嘗試實現了二叉堆的結構。在本篇博文中,將建立在堆的基礎之上,討論如何用堆實現排序。二叉堆的代碼直接引用昨天的實現源碼,在代碼的基礎上做一些修改使其變成堆排序。筆者目前整理的一些blog針對面試都是超高頻出現的

原创 深入淺出LinkedList與ArrayList

引言 本來我寫了一篇從源碼介紹ArrayList和LinkedList的博文,但是反覆考慮之後,覺得並沒有多大意義。相信稍微有點基礎的都能明白他們基本的原理。所以我又重新寫了一篇更高級一些的文章,不再去研究底層的構造。在本篇博文中

原创 java實現排序(3)-希爾排序

引言 希爾排序也是經典的排序算法之一,其實本質上還是插入排序,不過它對插入排序做了進一步的優化。在本篇博文中會詳細介紹希爾排序,討論算法性能,用代碼實現希爾排序並解釋爲什麼它相對於插入排序有了進一步的優化。筆者目前整理的一些blo

原创 java中不太常見的東西(2) - Lambda表達式

引言 在JDK1.8的新特性中,引入了一個叫Lambda表達式的東西,或許有些小夥伴到現在都沒有寫過。它的核心理念就是“可以像對象一樣傳遞匿名函數”。在本篇博文中,我會詳細介紹Lambda的概念,同時介紹幾個JDK1.8中新增加的

原创 java實現排序(5)-歸併排序

引言 歸併排序也是一種效率非常高的排序算法,它的時間複雜度是O(NlogN)。在本文中,會詳細介紹歸併排序的概念和排序的基本原理。最後用代碼實現歸併排序,供大家參考。筆者目前整理的一些blog針對面試都是超高頻出現的。大家可以點擊

原创 深入淺出LinkedList與ArrayList(2)

引言 上一篇博文,我們瞭解了LinkedList與ArrayList的底層構造和效率問題。在這篇博文中,我自己寫了兩個自己的數據結構來感受效率問題,這些代碼的由來源於我在某易的師兄的提問。所以我做了以下整理,希望對大家有所啓發,其

原创 編碼靈魂(6)-開閉原則

引言 我覺得編碼是有靈魂的,就像每個人都有信仰一樣。那麼如何去體現信仰,如何凸顯靈魂就需要依賴它所固有的原則。最近學習了設計模式的六大原則,有所感悟,特此做總結和記錄。本文中主要介紹了關於開閉原則的理解和定義,同時我們總結一下所有

原创 java中不太常見的東西(1) - 枚舉enum

引言 之所以我想總結一下java中不太用的東西,是因爲我再研究每個版本jdk中,發現有些內容“熱火朝天”,但是有些東西卻“門可羅雀”。比如說jdk1.5中新增了泛型,強化for循環和枚舉等,但是前兩者已經被各位熟知了,但是枚舉在日

原创 JDK1.8源碼逐字逐句帶你理解WeakHashMap底層

引言 WeakHashMap其實也是java不常見的東西,但是和linkedHashMap一樣,有它自己獨特的功能。在本篇博文中我會用例子詳細介紹它獨有的屬性,同時會對照源碼來解釋爲什麼它具備這樣的功能。在知識點中會擴展關於引用的

原创 java中不太常見的東西(4) - Fork/Join

引言 《java中不太常見的東西》這個模塊已經好久沒寫了,今天寫一個java中自帶的分佈式處理方式Fork/Join。Fork/Join在JDK1.7的時候引入,它某種程度上可以實現簡單的map-reduce操作。筆者目前整理的一

原创 Mysql你必須知道的命令和函數

引言 在本文中總結一些Mysql的常用命令和函數,也許常見,也許不常見,但是重要。筆者目前整理的一些blog針對面試都是超高頻出現的。大家可以點擊鏈接:http://blog.csdn.net/u012403290 常用、重要命令

原创 java中不太常見的東西(3) - Optional

引言 上一篇博文我們主要介紹了關於Lambda表達式相關的知識,所以在今天的博文中我想把一個同樣還不普及的類介紹給大家,Optional這個類是在Jdk1.8的時候引入的,它的主要功能是判斷一個值是否爲空,伴隨着對數據相應的處理。

原创 java中不太常見的東西(5) - 註解

引言 在日常的開發過程中,其實每個人都用到了註解,最常見的就是重寫@Override。既然這麼常見爲什麼還要放入不常見的模塊中呢?在本篇博文中會詳細介紹關於註解的概念和各個組成部分,同時會寫出一個demo來說明自定義註解使用的一種

原创 java實現(1)-二叉查找樹

引言 在這個模塊中,主要是用自己的代碼來實現一些底層的源碼。不像底層源碼那樣難理解,會用更加通俗的方式讓每個人都能看得懂,比如說不會在if中聲明變量和賦值,即使if只有一句話也不會省略花括號,不適用移位等等。在本篇博文中,會用自己