原创 深入理解String

一、String知識總結 String被final修飾,不可變對象,也就是不能被繼承 String是通過Char數組來保存字符串的 String提供的操作字符串方法,比如subString,replace,concat,連接符,

原创 ElasticSearch學習筆記(九)——Elasticsearch查詢原理分析

一、前言 ES的查詢分爲兩個階段: 查詢 取回 首先,一個 index 的數據會被分爲多片,所以一個 document ,只能存在於一個 shard 中,如何確定doc的位置呢? 數據路由算法: shard = hash(

原创 Redis事務與Pipeline功能

一、Redis事務 Redis中的事務(transaction)是一組命令的集合,對事物的支持有限,不能保證原子性,在集羣分片環境中,由於不同key可能存在不同的機器上,所以造成事務無法使用(可以簡單使用,不推薦) 事務相關命令

原创 MySQL Explain命令詳解

一、EXPLAIN命令介紹 MySQL EXPLAIN命令是查詢性能優化不可缺少的一部分,同時EXPLAIN 命令用法十分簡單, 在 SELECT 語句前加上 Explain 就可以了 mysql> EXPLAIN SELECT

原创 ArrayList實現自定義排序

一、ArrayList排序使用 ArrayList中存在sort排序方法,只要你實現了Comparator的接口,按照你自己的排序業務進行實現,你只要告訴這個接口按照什麼類型進行排序就OK了。這種方式類似於設計模式中的策略模式,把

原创 Kafka協調器和有意思的三個參數

一、Kafka的協調器 作用: 負責消費者的出入組工作 組協調器,每個broker啓動的時候,都會創建GroupCoordinator實例,管理部分消費組 在與之連接的消費者中選舉出消費者leader 下發leader消費

原创 Spark介紹

一、Spark簡介 Apache Spark 是專爲大規模數據處理而設計的快速通用的計算引擎。Spark是UC Berkeley AMP Lab(加州大學伯克利分校的AMP實驗室)所開源的類Hadoop MapReduce的通用並

原创 Elasticsearch學習筆記(五)—Elasticsearch寫入流程解讀

一、Elasticsearch寫入請求流程 假設一個寫入請求發到node1 node1接收到請求,根據_routing或_id來計算數據該寫到哪個分片上,並且根據集羣狀態中的信息找到該分片的主分片在哪個節點上。這裏發送到n

原创 延時任務調度設計

一、延遲隊列介紹 延時任務的需求: 生成訂單30分鐘未支付,則自動取消 生成訂單60秒後,給用戶發短信 延時任務與定時任務區別: 定時任務有明確的觸發時間,比如在某個時刻執行,或者按照某個週期執行,延時任務沒有 定時任務一般

原创 Java值傳遞與引用傳遞

結論:在Java中對象作爲參數傳遞時,是把對象在內存中的地址拷貝了一份傳給了參數,方法並不能修改傳遞給它的任何參數變量的內容。所以Java是按值傳遞 如果不能理解,看下面的分析: 基本數據類型 public class Test1

原创 Java對象創建過程:靜態代碼塊,構造代碼塊,構造函數執行順序

一、普通代碼塊 void a() { } 普通代碼塊(局部代碼快)是在方法名後面用 {} 括起來的代碼段,不能夠單獨存在,必須要緊跟在方法名後面且必須使用方法名調用它,作用是限定變量的生命週期和提高效率 二、構造代碼塊 {

原创 Java內部類詳解

一、內部類介紹 在Java中,可以將一個類定義在另一個類裏面或者一個方法裏面,這樣的類稱爲內部類 爲什麼需要內部類? 內部類繼承自某個類或實現某個接口,內部類方法可以訪問該類定義所在作用域中的數據,包括被 private 修飾的

原创 Kafka學習筆記(十一)—Kafka生產者API

一、Kafka生產者簡介 Kafka項目有一個生產者客戶端,我們可以通過這個客戶端的API來發送消息。生產者客戶端是用Java寫的,但Kafka寫消息的協議是開放的,所以我們也可以自己實現一個非Java語言的客戶端 問題: 每條

原创 Kafka學習筆記(十二)—Kafka消費者API

一、Kafka消費者簡介 Kafka和其它消息系統有一個不一樣的設計,在consumer之上加了一層group。Consumer Group 是 Kafka 提供的可擴展且具有容錯性的消費者機制。同一個group的consumer

原创 理解動態規劃算法

問題 一隻青蛙一次可以在臺階跳一步或者兩步,那麼n級臺階青蛙有多少種跳法? 思路: 假設臺階爲10級 青蛙最後一次跳上第10級臺階,只能從第9級或者第8級 這個問題就演變爲 f(10) = f(9) + f(8) 依次類推f(9