原创 設計一個高效算法,算出隨機數組裏的中位數

解題思路: 通過最大堆、最小堆來實現實時中位數的獲取。 最大堆中存放比最小堆小的元素。 如果最大堆的對頭元素大於最小堆,則進行交換。 偶數下標的元素存入最小堆,奇數下標的元素存入最大堆   public class Median {

原创 如何做一個排行榜功能

如果每次查詢TOP 10都去流水錶聚攏數據的話,必須是非常耗時的。所以排行榜功能實時查表,顯然不可能。所以就需要用到常見的緩存redis了。 redis有序集合   redis支持五種數據類型:string(字符串),hash(哈希),l

原创 單例模式的懶漢式,餓漢式詳解

什麼是單例模式? 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確保只有單個

原创 解決tcp粘包和半包的問題

此文章爲博主還是小白時,遇到的問題,總結一下: 正常情況下,包都是完整的一個一個的。但是由於一些網絡的問題,可能有些出入(畢竟,網絡有點不可控),大致分爲以下三種: 一種是正常的字符串輸出。 一種是多個字符串“粘”在了一起,我們定義這種