原创 數組溢界地址的正確使用: 即 int a[6] 中的 a[-1] 和 a[6] 正確使用

正如大家所知道的那樣: 數組  int a[6] ,  編譯器閱讀到這句數組定義,會爲分配6個int 類型的地址;a[0]  a[1]   a[2]   a[3]  a[4]  a[5]。我們 可以正確的使用這6地址內容來存放數據。而本文

原创 細說多線程

JAVA線程 java線程實現方式 實現runnable接口(無結果返回) 實現callable接口 (可以通過Future獲取返回執行結果) 直接繼承Thread類(爲一個實現runnable接口類的實例)  Java

原创 如何健壯後端服務

對每一個程序員而言,故障都是懸在頭上的達摩克利斯之劍,都唯恐避之不及,如何避免故障是每一個程序員都在苦苦追尋希望解決的問題。對於這一問題,大家都可以從需求分析、架構設計 、代碼編寫、測試、code revi

原创 尋找數組N中最大(最小的)M個數(親自調試可運行)

當N很小十可以使用方法2, 當N很大時可以使用方法1,從硬盤逐次讀入解決; /*方法 1  適合大量數據  *尋找長爲N的數組的前M大的元素並輸出。  *用堆的性質,使用數組N建立一個M大的最大堆,然後輸出堆內容即可  *時間複雜度分析

原创 JVM內存管理

JVM內存管理 內存結構 JVM是按照運行時數據的存儲結構來劃分內存結構的,JVM在運行java程序時,將它們劃分成幾種不同格式的數據,分別存儲在不同的區域,這些數據統一稱爲運行時數據。運行時數據包括Java程序本身的數據信息和JVM運

原创 尋找長爲N的數組的前M大的元素並輸出

/*  *尋找長爲N的數組的前M大的元素並輸出。 *用堆的性質,使用數組N建立一個M大的最小堆,遍歷數組剩餘N-M個元素,與堆頂元素比較,如果大於堆頂,則與堆頂交換,並調整堆  *最後輸出堆內容即可  *

原创 二維數組環形打印,親自調試

/*先把數據按照打印格式打印到二維數組中,然後輸出二維數組即可  *時間複雜度 O(N*M)  *空間複雜度O(N*M) */ #include<stdio.h> #include<string.h> #include<stdlib.h

原创 使用 & ^ << 等 位符實現加法運算

學習過C語言的同學都知道,再寫代碼的時候,位操作運算總比算數運算操作快, 本文就是用C語言提供的位運算實現兩個數的加法。 本文使用的代碼都經過調試正常並且能夠運行,調試環境centos     gcc  一下是實現代碼,以及測試結果:

原创 字符串分割到二維字符數組中:

/*  *字符串分割,把一個長的字符串(可能有空格),分割到一個二維字符數組中。  *並且輸出  *  *時間複雜度O(N)  *注意在操作二維字符串數組時:使用“數組指針”操作能方便 int(*p)[L

原创 stl容器區別: vector list deque set map及底層實現

在STL中基本容器有: vector、list、deque、set、map set 和map都是無序的保存元素,只能通過它提供的接口對裏面的元素進行訪問 set:集合, 用來判斷某一個元素是不是在一個組裏面,使用的比較少 map:映射

原创 刪除數組中重複元素 (使用stl::set)

/*  *程序作用刪除數中重複的元素,先使用set 遍歷一次數組,然後在使用兩個指針,以及set查重,  *去重複之後使用0填補多餘空間  *複雜度 O(NlogN)  *空間複雜度 O(N) */ #i

原创 多線程(start-point & end-point)

why 最近項目是中使用到了CountDownLatch, 小憩時間對Doug Lea在JUC包提供的這兩個類做了一些思考,這裏不提供具體的使用方法,只是寫一些對這兩個類的理解; 如有偏頗, 請斧正 場景 當有批處理任務或者類map

原创 初始分庫--分表

Auther—Motata 分庫/分表 從表由於一直對mysql數據庫不是很瞭解,而這些是必備的基礎知識,所以就花了時間從理論上對分庫/分表做了些研究希望到使用時不至於太匆忙。可能以下有些地方表述不當,個人理解有些誤區或者有錯誤,請大家指

原创 glibc 內存池管理 ptmalloc(轉)

Linux中malloc的早期版本是由DougLea實現的,它有一個重要問題就是在並行處理時多個線程共享進程的內存空間,各線程可能併發請求內存,在這種情況下應該如何保證分配和回收的正確和有效。Wolfram Gloger在Doug Le

原创 使用函數指針,完成一個sort()函數,能對任何類型的數組元素進行排序: 回調函數 以及 memcpy ()原型實現

進來複習了一下C語言指針,一直沒有寫過太多關於函數指針的代碼,而且對回調函數的理解一直都是在理論上,基本上沒有太寫過關於它的代碼,進來得空,寫了一個小程序加深下自己對回調函數和函數指針的理解。 問題描述: 編寫一個sort()函數,使它