原创 常用的git命令

git: git branch  分支管理 git checkout   切換分支或者創建分支 git commit     提交 cvs: cvs checkout update commit history

原创 二分查找

二分查找: https://blog.csdn.net/u014067137/article/details/80332251 前提:待查的表必須是有序表 因此折半查找適用於不經常變動,並且查找頻繁的有序表 思想: 首先待查找的元素與表的

原创 OK Group筆試編程,求一個數的階乘值後面有幾個0

題目描述: 求一個數的階乘的值,最後求結果末尾有幾個0; 分析: 1)如果用常規的算法,先求出這個數的階乘,基本都會溢出,不管將結果定義爲Long還是double類型的,還有就是效率特別低 2)末尾產生0的情況,意思就是末尾是10,那麼2

原创 數據庫索引,B樹,B+樹,group by,order by區別

數據庫索引 加索引後查詢會變快,但是寫入,刪除,修改會變慢,增加了數據庫的存儲空間 類似於書的目錄。 先了解下平衡樹(b tree或者b+ tree). 如果數據庫的表有主鍵,那麼表在磁盤上的存儲結構就由整齊排列的結構變爲樹狀結構。也就是

原创 數據庫:DDL,DML,DCL,實體完整性,參照完整性,用戶自定義完整性

1.DDL,DML,DCL DDL:數據庫定義語言。用來定義表或者改變表的結構,數據類型,表之間的連接,約束等初始化工作上。包括:CREATE    DROP    ALTER等 DML:數據庫操縱語言。對數據庫的數據進行操作。包括:DE

原创 java併發編程:線程池

線程池: 在多線程環境中,如果併發的線程數量很多,並且每一個線程執行很短的時間就結束了, 頻繁地創建線程和銷燬線程是需要時間,這樣會很大程度上降低系統的效率。而線程池使得線程可以複用,執行完一個任務,並不被銷燬,而是繼續執行其他的任務。

原创 多線程:死鎖,樂觀鎖,悲觀鎖

死鎖: 兩個或者多個進程競爭統一資源而形成的僵持的局面,若無外力作用,將無法推進。 本質原因: 1)系統資源有限 2)進程推進順序不合理 死鎖的條件: (1)互斥。某個資源在一段時間只能有一個進程佔有,只有當使用該資源的進程釋放後,其他進

原创 非阻塞NIO與IO

NIO與IO的區別: (1)NIO以塊的方式處理數據,IO以字節流的形式寫入和讀出。因此NIO的效率比IO的效率高很多。 (2)NIO採用通道和緩衝區的形式來進行處理數據的。它的通道是雙向的,但是IO中的流是單向的。 通道Channel:

原创 劍指offer:請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。

題目描述: 請實現一個函數用來判斷字符串是否表示數值(包括整數和小數)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3","+-5"和"1

原创 劍指offer:平衡二叉樹(java)

題目描述: 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。 分析: 滿足:左右二叉樹的層數之差小於等於1 1)遞歸 知道了二叉樹的深度怎麼求,現在要判斷是否是平衡二叉樹,只要分別求出左右子樹的深度,然後判斷深度之差在小於2就行。 //1

原创 劍指offer:求二叉樹的深度(遞歸與非遞歸)

題目: 輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 分析思路以及代碼: 分爲三種情況: 1)二叉樹爲空,直接返回0 2)左子樹或者右子樹爲空,直接返回左子樹或者

原创 集合(一)Set:HashSet,TreeSet

集合(一)Set:HashSet,TreeSet 參考:https://mp.weixin.qq.com/s/ZTNJIbrDfLUdkEU5aiDRFQ Set是不允許出現重複的集合,主要有HashSet和TreeSet兩大類,判斷重複

原创 集合(二)List,ArrayList,LinekList,Vector

ArrayList,LinkedList,Vector List,Queue中的元素有序可重複 ArrayList,LinekList,Vector 均爲可伸縮數組,既可以動態改變長度的數組。 1.ArrayList: 數組實現,查詢速度

原创 集合(三)Map: HashMap HashTable TreeMap WeakHashMap

Map: HashMap  HashTable  TreeMap  WeakHashMap HashMap,HashTable,TreeMap都是Map的實現類。 Map是用來存儲鍵值對的數據結構,在數組中通過下標對其內容索引,在Map中

原创 數組:判斷一個數組中數值是否連續相鄰

問題描述: 一個數組序列,元素取值可能是0--65535中的任意一個數,相同數值不會重複出現。0可以重複出現。當從該數組序列中隨機選取5個數值,判斷這5個數值是否連續相鄰。 需要注意4點:  1.) 5個數值允許是亂序的,例如{8,7,5