原创 1.1 線性表——列表

什麼是列表 列表是一種數據項構成的有限序列,即按照一定的線性順序,排列而成的數據項的集合,在這種數據結構上進行的基本操作包括對元素的的查找,插入,和刪除。 列表的兩種主要表現是數組和鏈表,棧和隊列是兩種特殊類型的列表。 學過 C

原创 1.2 線性表——鏈表

什麼是鏈表 鏈表是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一系列結點(鏈表中每一個元素稱爲結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素

原创 0_時間複雜度的計算

算法複雜度 算法複雜度分爲時間複雜度和空間複雜度。時間複雜度是指執行算法所需要的計算工作量;而空間複雜度是指執行這個算法所需要的內存空間。 時間複雜度是學習算法的基石,因此在學習算法之前,必須要知道如何去計算一段代碼的時間複雜度,

原创 淺談垃圾回收

引言 一直都想寫一篇博客結合前輩的經驗去闡述自己對垃圾回收的理解,但阿導本人經驗尚欠,怕寫的不好,所以拖了很久很久,文章中不足之處,還請多多包涵。 垃圾回收的背景 垃圾回收(Garbage collection),簡稱 GC,很多

原创 2.2 棧和隊列—隊列

什麼是隊列 隊列是一種先進先出(FIFO:First In First Out)的線性表,只允許從一端插入,從另一端刪除,允許插入的一端叫隊尾(rear),允許刪除的一端叫隊頭(front)。 隊列的模型 隊列可以用數組或者鏈表

原创 2.1 棧和隊列—棧

什麼是棧 棧本質是表,只不過其限制了插入和刪除都在一個位置上進行,這個位置是表的末端,稱之爲棧頂。棧也被稱作後進先出(LIFO:Last In First Out)表。 棧的模型 棧是一種抽象型數據模型,以下就是棧的模型,每次數據

原创 1.3 線性表——跳躍表

什麼是跳躍表 跳躍表是一種有序的數據結構,它通過在每個節點上維持多個指向其它節點的指針來達到快速訪問的目的。跳躍表在插入、刪除和查找操作上的平均複雜度爲 O(logN),最壞爲 O(N),可以和紅黑樹相媲美,但是在實現起來,比紅黑

原创 1.4 線性表—並查集

什麼是並查集 並查集是線性表的一種應用,是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合併及查詢問題。常常在使用中以森林來表示。集就是讓每個元素構成一個單元素的集合,也就是按一定順序將屬於同一組的元素

原创 Mysql 存儲過程遍歷無法獲取值的坑

/** .::::. .::::::::. ::::::::::: 佛主保佑、永無Bug

原创 # 隨記

linux 系統磁盤滿了咋整 # 查看文件佔用空間 cd / df -lh # 查找大文件 du -h --max-depth=1 # 殺死殭屍進程 lsof | grep delete | awk -F ' '

原创 數據安全設計

引言:在 web 程序中,數據加密非常重要,對於不用解密的數據,如密碼等,一般使用 md5 的加密技術,對於需要解密的數據,我們常用 AES 加密,現在我們來討論下如何提高數據的安全性。 一、對私鑰用公鑰加密,然後數據進行多次對稱

原创 三年之坎

隨談 不知不覺,正式工作已經有三年了,三年這個點,我工作地點從安徽蕪湖到浙江杭州,因爲窮,所以離鄉背井,這是目前大多數年輕人的現狀。 時間過得可真快,三年吧!我也是渾渾噩噩過來的,基礎能力尚可,業務經驗尚淺,一共面試次數不超過一個手掌

原创 反射優化之方法句柄

簡介 對於反射,相信從業 java 開發的人多多少少有些耳聞,在 jdk 1.7 爲了間接調用方法引入了另一個新的 API ,即方法句柄。在方法句柄裏面,有兩個重要的類分別是 MethodType 和 MethodHandle,下面允

原创 爲什麼說 java 是按值傳遞

值傳遞和引用傳遞 我們這邊所說的傳遞主要發生過程在調用方法的時候實際參數與形式參數之間的傳遞。 定義 值傳遞(pass by value):在調用函數時將實際參數複製一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實

原创 Zookeeper 教程

Zookeeper 作爲 Hadoop 和 Hbase 的重要組件,可以爲分佈式應用程序協調服務,同時還能使用 Java 和 C 的接口。 Zookeeper 概述 ZooKeeper 是一種分佈式協調服務,用於管理大型主機。在分佈式