原创 Java閉鎖2(Callable接口的模擬與應用)

介紹 Java中一共有4種創建線程的方式,繼承Thread、實現Runnable接口、實現Callable接口,通過線程池創建。在以上4種線程的創建方式中,如果你瞭解果前兩種線程的創建方法,那我們是可以模擬實現Callable接口

原创 詞典快速匹配方案

介紹 對於構造了幾百萬上千萬的集合中,快速查找對應的元素是一種常見的應用場景,因此本文將探討一種如何在一個大集合中快速查找對應元素的方法。 查找方案 哈希查找和字典樹是兩種高性能的查找方法。其中字典樹使用最長前綴匹配法,其查找速度

原创 圖的深度、廣度優先、最小生成樹、最短路徑算法(Java版本)

介紹 本文提供了圖的鄰接表、鄰接矩陣的Java實現,包括深度優先算法、廣度優先算法、prim算法和地傑斯特拉算法。 原理分析 輸入圖: 深度優先遍歷: 廣度優先遍歷: 注意:鄰接矩陣和鄰接表同樣的輸入遍歷的結果可能會不完

原创 ActiveMQ之快速上手

JMS規範 ActiveMQ遵循JMS規範,是實現JMS接口的消息中間件,其遵循如下規範。 Provider(MessageProvider):生產者 Consumer(MessageConsumer):消費者 PTP:Point

原创 二叉樹的遞歸與非遞歸方式的先序、中序、後序、層序遍歷算法(Java版本)

介紹 本文提供了二叉樹的構造、遞歸與非遞歸方式的遍歷算法,其中遞歸方式較爲簡單。但在實際應用中,遞歸的遍歷方式適用於遞歸深度不高的算法中,其一般使用非遞歸方式來解決。 二叉樹建樹 實驗一:輸入測試數據序列:A B # D # #

原创 HDFS簡單使用

介紹 HDFS作爲Hadoop生態系統下一個一個分佈式文件系統,具有高容錯性特點,適合部署在廉價的機器上,提供了高吞吐量的數據訪問,非常適合大規模數據集上的應用。HDFS是一個主從結構(namenode和datanode),其中N

原创 一種安全高效的文件傳輸協議設計

介紹 隨着3G、4G、5G的發展,使得文件傳輸變得輕而易舉,我們可以隨時隨地地進行文件傳輸,與好友之間,與雲服務器之間。文件的傳輸,意味着一個數據信息需要在網絡上暴露,當受到惡意攻擊時,導致數據泄露,造成一些不可磨滅的災難。因此,

原创 手寫Jedis

簡介 Redis緩存技術常備作爲互聯網架構中的熱點技術,常用來提升系統的性能,常被應用在一些讀多寫少的場景。Jedis基於Java實現,通過Jedis底層的協議,我們很簡單就可以訪問Redis服務器,如Redis中的Set、key

原创 Java中的Semaphore

介紹 Semaphore是Java提供的另一種鎖機制,稱爲信號量,它可允許指定數量的多個線程同時擁有一個信號量。區別於鎖的關鍵在於,鎖是爲了保證資源的安全而設計的,而信號量是爲了限制資源的併發數,對性能進行考慮而設計。 設計原理

原创 迷宮問題

介紹 迷宮問題一般深度優先遍歷或者廣度優先遍歷解決,輔助數據結構使用棧或者隊列。使用棧解決該問題時,將棧頂能達到的一個位置入棧,若發現該路不通,則退棧,通過棧頂元素繼續訪問其他可達到的位置,直到走完整個迷宮。若使用非循環隊列,將隊

原创 高性能的多對少集合映射調整方法

介紹 當一大一小兩個集合存在關聯關係時,每次小的集合中元素的位置調整,需遍歷大集合來調整其對應的關聯關係,開銷較大,本文介紹一種方法,使得無需調整大集合也能保持其對應的關聯關係。 原理 通過引入中間集合來記錄大集合到小集合的映射關

原创 Counting Bloom Filter

介紹 Bloom過濾器常被用作判斷集合元素的從屬關係,用來繞過對集合的遍歷,加速集合的查找。然而,標準的Bloom過濾器使用一個比特向量來記錄元素的從屬情況,使得其無法直接支持元素的刪除。本文將介紹一種Counting Bloom

原创 BloomFilter

介紹 布魯姆過濾器常用作對元素和集合的從屬關係進行判定,用來繞過在集合中查找對應元素的過程。本文將介紹一種最簡單的基於比特向量的布魯姆過濾器,並提供Java代碼。 實現方法 插入: 1、初始化空集 2、插入集合元素a,經過4個不同

原创 IP策略組

介紹 往往會遇到需要添加IP黑名單和IP白名單的情況來允許和禁止其他主機的訪問,一種方法是通過設置防火牆策略,另一種方法就是設置IP策略組,本文主要描述如何通過命令行來設置IP策略組。 實現 sql注入後發現是做了安全策略的話,下

原创 開機自動以管理身份員啓動

Windows系統中開機自動啓動步驟 1、檢查TaskScheduler服務是否開啓 2、添加TaskScheduler任務,控制面板-系統和安全-管理工具-任務計劃程序 具體設置 參考:https://blog.csdn.ne