原创 hoohack博客搬家

此博客不再更新,歡迎前往個人主頁:http://www.hoohack.me   或者關注公衆號:

原创 ARTS挑戰打卡第三週

ARTS挑戰Algorithm-一週至少一道算法題Review-閱讀並點評至少一篇英文技術文章Tip-學習至少一個技術技巧,總結和歸納在日常工作中所遇到的知識點Share-分享一篇有觀點和思考的技術文章01-Algorthm——————

原创 Mockito-提高單元測試效率利器

前言之前在開發進行到寫單元測試階段的時候,發現要測試的方法裏面是包含依賴的:外部接口RPC調用、DB調用。在某些情況下,部分依賴不穩定或者無法在測試環境調用時,會導致用例偶爾執行失敗。另外一點,很多用例都是在測試用例的開頭寫了@Spri

原创 ARTS挑戰打卡第四周

“ 堅持就是勝利”Algorithm-一週至少一道算法題Review-閱讀並點評至少一篇英文技術文章Tip-學習至少一個技術技巧,總結和歸納在日常工作中所遇到的知識點Share-分享一篇有觀點和思考的技術文章01-Algorthm———

原创 爲什麼需要分佈式系統

前言最近在學習MIT6.824的分佈式系統課程,正在看Raft的論文,Raft是一種共識算法(Consensus algorithms),共識算法是用來保證分佈式系統裏數據的一致性的算法,所以也可以說是一個一致性算法。在學習這個課程的過

原创 理解Redis的內存回收機制

之前看到過一道面試題:Redis的過期策略都有哪些?內存淘汰機制都有哪些?手寫一下LRU代碼實現?筆者結合在工作上遇到的問題學習分析,希望看完這篇文章能對大家有所幫助。從一次不可描述的故障說起問題描述:一個依賴於定時器任務的生成的接口列

原创 【總結】MIT-6.824分佈式課程-Mapduce實驗

MIT 6.824分佈式系統課程,是一門著名的講解分佈式系統設計原理的課程。通過課程講解和實驗結合來學習分佈式系統設計原理,實驗和課程安排見課程表。前言我爲什麼要學習這個課程?之所以會接觸到這門課程,是之前在表示對分佈式系統感興趣時一位

原创 C++多態的實現原理

1. 用virtual關鍵字申明的函數叫做虛函數,虛函數肯定是類的成員函數。2. 存在虛函數的類都有一個一維的虛函數表叫做虛表。類的對象有一個指向虛表開始的虛指針。虛表是和類對應的,虛表指針是和對象對應的。3. 多態性是一個接口多種實現,

原创 算法十二----左旋轉字符串

題目:  定義字符串的左旋轉操作:把字符串前面的若干個字符移動到字符串的尾部。    如把字符串abcdef左旋轉2位得到字符串cdefab。請實現字符串左旋轉的函數。    要求時間對長度爲n的字符串操作的複雜度爲O(n),輔助內存爲

原创 並行快速排序

並行快速排序 感謝網友淺水清流投遞本稿。 併發算法是多核時代開始流行的技術趨勢,比如tbb,ppl都提供了大量有用的併發算法。 經典算法中,排序是一個很適合採用分治法併發的場合,比如快速排序。 常規的快速排序,先在數組

原创 算法學習二----求子數組的最大和

題目如下: 輸入一個整型數組,數組裏有正數也有負數。 數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。 求所有子數組的和的最大值。要求時間複雜度爲O(n)。 例如輸入的數組爲1, -2, 3, 10, -4, 7,

原创 HTTP請求中POST與GET的區別

一、原理區別 一般我們在瀏覽器輸入一個網址訪問網站都是GET請求;再FORM表單中,可以通過設置Method指定提交方式爲GET或者POST提交方式,默認爲GET提交方式。 HTTP定義了與服務器交互的不同方法,其中最基本的四種:GET,

原创 堆和棧的區別

一、預備知識—程序的內存分配    一個由C/C++編譯的程序佔用的內存分爲以下幾個部分    1、棧區(stack)—   由編譯器自動分配釋放   ,存放函數的參數值,局部變量的值等。其    操作方式類似於數據結構中的棧。    2

原创 gdb常用命令

調用gdb編譯需要在cc後面加 -g參數再加-o; [root@redhat home]#gdb 調試文件:啓動gdb (gdb) l :(字母l)從第一行開始列出源碼 (gdb) break n :在第n行處設置斷點 (gdb

原创 算法學習十一----連續最長的數字串

寫一個函數,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出連續最長的數字串,並把這個串的長度返回,並把這個最長數字串付給其中一個函數參數outputstr所指