原创 算法快學筆記(五):散列表

1. 介紹 當需要根據給定的值需要快速得到想要值的時候,散列表是一個非常有用的數據結構,假設你在一家雜貨店上班。有顧客來買東西時,你得在一個本子中查 找價格,如果本子的內容不是按字母順序排列的,你可以使用簡單查找法,從頭到尾以一個一個

原创 算法快學筆記(四):快速排序的原理與實現

1. 原理介紹 快速排序是一種排序算法,速度比選擇排序快得多,其主要基於“分而治之”的思想對集合進行排序,本文將對該算法進行分析。 2. 分而治之(D&C)的思想 D&C主要指利用遞歸的方式來不斷的縮小需要處理問題的規模,最終使問題容

原创 算法快學筆記(三):選擇排序的原理與實現

1. 原理介紹 選擇排序是個簡單的排序,思路主要通過多次遍歷待排序的集合,每次彈出最大/小值並放入新的集合,直到原始集合爲空。舉個例子: 假設要對A=[1,2,5,9,3]按照升序的方式進行排序,步驟與結果如下 從A中找出最大值,將

原创 算法快學筆記(一):算法入門

1. 算法的定義 “算法”一詞在不同的書籍以及網站上可能會存在一些差異,但是下面的定義個人覺得最爲貼切: 1. 算法代表着用系統的方法描述解決問題的策略機制 2. 能夠對一定規範的輸入,在有限時間內獲得所要求的輸出 3. 一個算法的優

原创 算法快學筆記(二):數組與鏈表

1. 說明 當程序需要將數據存儲到內存時,計算機會給你一個存儲地址。需要存 儲多項數據時,有兩種基本方式——數組和鏈表。但它們並非都適用於所有的情形,因此知道它們的特性很重要。本文將對數組與鏈表的原理與優缺點進行總結。 2. 數組 使

原创 Netty框架學習之(一):Netty框架簡介

1. 簡介 官方定義爲:”Netty 是一款異步的事件驅動的網絡應用程序框架,支持快速地開發可維護的高性能的面向協議的服務器 和客戶端”,按照慣例貼上一張High Level的架構圖: 縱觀Java系的多種服務器/大數據框架,都離不開

原创 ElasticSearch學習總結(一):信息檢索基礎理論

本系列文章爲Elasticsearch 的學習筆記,主要是爲了便於日後對於相關知識點的回顧,在內容的範圍以及正確性上可能存在一定出入。另外由於Elasticsearch的發展速度很快,很多特性會隨着版本的演變而發生變化,具體的特性說明,如

原创 Netty框架學習之(五):細說數據容器-ByteBuf

1. 簡介 字節是網絡數據的基本單位。 Java NIO 提供了 ByteBuffer 作爲字節容器,但是這個類使用起來過於複雜,而且也有些繁瑣。Netty使用了即易於使用又具備良好性能的ByteBuf來替代ByteBuffer。 本文將

原创 ElasticSearch學習總結(八):插件的開發

本文主要總結Elasticsearch 自定義 REST 接口的插件開發流程。 1. 插件介紹 本插件邏輯比較簡單,主要用來返回包含指定前綴的節點列表。 2. 代碼說明 插件主要包括兩部分的內容,一部分用來對插件的註冊,另一部分負責對業務

原创 ElasticSearch學習總結(六):集羣管理總結

本文主要總結和集羣管理的相關內容。 1. 發現和恢復模塊 節點的啓動主要包括兩個過程:(1)發現 (2)恢復 1.1 發現(discovery) 當啓動ES節點的時候,最先做的事情就是查找一個擁有相同集羣名稱且網絡上可見的主節點,如果找到

原创 Netty框架學習之(二):Netty組件簡介

1. 概覽 從高層次的角度來看Netty, 它主要爲需要開發高性能應用的開發者解決了“技術”的和“體系結構”的問題。首先,它的基於 Java NIO 的異步的和事件驅動的實現,保證了高負載下應用程序 性能的最大化和可伸縮性。其次, Ne

原创 Netty框架學習之(三):細說Netty的數據傳輸

1. 概述 使用Java 自帶的API開發IO系統時,如果需要對傳輸的方式進行切換,例如從阻塞傳輸切換到非阻塞傳輸, 那麼可能會由於兩種方式的API不兼容問題需要大面積的修改代碼。然而 Netty 則爲它所有的傳輸方式提供了一個通用 AP

原创 ElasticSearch學習總結(三):查詢總結

本文主要對Elasticsearch中查詢相關的知識做一個簡單的總結,內容主要包括查詢的評分機制,查詢改寫,過濾器,以及對常見的查詢做一個簡單的分類 1. 評分機制 在Lucense中默認使用TF/IDF算法對文檔進行評分,該算法已經在前

原创 Netty框架學習之(四):線程模型

轉載自:https://www.cnblogs.com/TomSnail/p/6158249.html 1. Proactor和Reactor Proactor和Reactor是兩種經典的多路複用I/O模型,主要用於在高併發、高吞吐量的環

原创 ElasticSearch學習總結(二):ES介紹與架構說明

本文主要從概念以及架構層面對Elasticsearch做一個簡單的介紹,在介紹ES之前,會先對ES的“發動機”Lucene做一個簡單的介紹 1. Lucene介紹 爲了更深入地理解ElasticSearch的工作原理,特別是索引和查詢這兩