原创 orm框架學習

orm框架做了什麼? 對原生的db操作進行封裝,提供簡單一致的接口,將db中的關係型數據轉換成程序中的對象, 實現一個orm框架需要做什麼? 最簡單的思路: func bizObj get(params) func result

原创 《重構》筆記

兩個類中相同的字段,函數簽名中相同的參數(s),總是綁在一起出現的數據項。拼成對象(如果刪掉衆多數據項中的一個,其他數據項失去意義,那麼就應該這麼做) 參數列表中多個相同基本類型的參數,如(operatorID int64, e

原创 raft協議學習記錄

1. a leader cannot immediately conclude that an entry from a previous term is committed once it is stored on a majo

原创 二叉樹的前/中/後序非遞歸遍歷和快排的非遞歸版本

二叉樹 無論是哪種順序的遍歷,都屬於深度優先的遍歷,因此都需要用到stack,同時還需要一個遊標,類似for循環的遊標,只是for循環是從前往後的順序,這裏的遊標是深度優先的順序,stack則控制push和pop的順序,以達到前中

原创 mysql中的時區問題

mysql server和client之間使用string而非long傳遞時間戳,因此這個string顯然是經過時區轉換得到的,在這個過程中有三個地方設置了時區: 1.mysql中的time_zone屬性 2.jdbc.url中的user

原创 Apriori算法以及MS-Apriori算法中生成頻繁項目集步驟的個人理解

    Apriori算法以及MS-Apriori算法均採用逐級搜索的方法來生成k階頻繁項目集,k階頻繁項目集僅由k-1階頻繁項目集兩兩合併而來。我要說明的是:爲什麼k-1階頻繁項目集兩兩合併的結果就一定是k階頻繁項目集的超集(算法後續步

原创 熔斷器學習

熔斷器的作用 在分佈式系統中,請求下游系統時,如果下游系統響應慢,或者直接hang住請求,可能會拖垮上游系統,產生雪崩效應。因此希望在下游系統不穩定或者不可用時,不調用下游系統,直接報錯返回 熔斷器的設計 熔斷器的三種狀態 cl

原创 golang閉包學習記錄

func TestClosure() { i:=1 go func() { i++ }() time.Sleep(time.Second) //如果這裏不sleep,上面的協程還沒來得及修改共享變量,下面輸出1, fmt.

原创 二叉樹的前/中/後序非遞歸遍歷

無論是哪種順序的遍歷,都屬於深度優先的遍歷,因此都需要用到stack,基本的思路是控制push和pop的順序,在每次push時訪問push的節點,或是在每次pop時訪問pop的節點。 /** * Definition for a b

原创 jvm讀書筆記

類加載與鏈接: 1.類型的唯一性通過類的全限定名和類的定義類加載器來標識。每個類加載器維護一個獨立的命名空間,只有在同一命名空間中的類才能相互調用。一般的jvm中共有三個類加載器:啓動類加載器 擴展類加載器 系統類加載器。 自定義類由系統

原创 從字節碼層面看try-catch-finally的實現機制

考慮以下方法可能的執行流程 public static int A() { try {//代碼塊1 return B(); }catch (Exception e){//代

原创 linux下nohup和&的區別與聯繫

nohup和&都可以在執行命令時使用,用法爲:[nohup] command [&] command &代表讓command在以後臺進程的方式運行。 通過ssh登錄遠程服務器後,會得到一個終端,這個終端提供了標準輸入以及輸出。例如執行pw

原创 ClassNotFoundException和NoClassDefFoundError的區別與聯繫

從命名上來看,一個是exception而另一個是error,這意味着出現ClassNotFoundException時是可以進行異常處理來挽救程序的,但出現NoClassDefFoundError對jvm來說是一個致命的,不可恢復的錯誤,

原创 leetcode 126 Word Ladder II

題目概述: Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformation sequence(