原创 布隆過濾器原理解析

在擼碼的時候,經常要判斷一個元素是否已經存在。常用的做法是,把已經存在的元素全部存儲到一個集合裏,然後新的元素查一下看它是否在集合裏來確定是否已經存在。這個集合的數據結構,一般我們會採用HashMap,它可以在O(1)的時間複雜度內返回結

原创 自己動手寫任務調度平臺

本文項目Github地址:https://github.com/zhouhuanghua/z-job 什麼是任務調度平臺呢?暫時不做解釋,先來看一下定時器的發展歷史吧! 首先,new Thread + while (true) + Thr

原创 字節碼操縱技術探祕

大家可能已經非常熟悉下面的處理流程:將一個“.java”文件輸入到 Java 編譯器中(可能會使用 javac,也可能像 ANT、Maven 或 Gradle 這樣的構建工具),編譯器對其進行分析,最終生成一個或多個“.class”文件。

原创 Java的單繼承多實現問題

最近突然想到一個老生常談的問題:爲什麼Java的類不支持多繼承(接口支持的哈)? 拋開高司令不想搞得太複雜的說法,大概答案就是 若子類繼承的多個父類擁有相同的成員變量,子類在引用該變量時將無法判別使用哪個父類的成員變量。 若子類繼承的多個

原创 Java中的Type家族簡單介紹

之前用反射的時候,基本都是Class。最近弄生成接口文檔工具的時候,又接觸了一下ParameterizedType,偶然的機會發現兩者居然有聯繫:頂級的接口都是Type。於是就統一整理下Type家族的東西。 Type是Java編程語言中所

原创 簡單聊一下RabbitMQ

RabbitMQ憑藉着其異步和解耦的兩大核心特性在分佈式系統應用中大放異彩。雖然在平時工作中經常用到,但是卻很少去深入研究。這兩天看了一下《RabbitMQ實戰》,總結了平時不太注意的幾個點。 1、Erlang RabbitMQ是用Erl

原创 Redis的數據結構操作命令及應用場景

目錄 鍵:key 字符串:String 哈希:Hash 列表:List 集合:Set 有序集合:sorted set 應用舉例 因爲Redis在日常開發中應用得比較多,所以這裏總結一下幾種數據結構的相關命令。在Java裏,如果客戶端使用的

原创 Docker安裝常用軟件

一、基本要用到的幾個命令 其實記住下面這兩個就行了 docker --help:列出所有命令及其說明 docker COMMAND --help:單個命令的用法 其中安裝軟件需要用到的 search:查找Docker Hub上的鏡像,如

原创 如何搭建高性能、高可用、可伸縮、可擴展的網站

本文只是對所讀書籍做一些總結,不代表博主的實戰經驗,#_#(注:有時候中間件的可擴展性視爲可伸縮性,因爲可擴展性和高可用性通常是相關聯的)。 一、高性能 也叫高併發,主要指標有響應時間、併發數、吞吐量等。 1、Web前端方面 瀏覽器:緩存