原创 正確的策略迭代流程是什麼?

當前已經有了一版線上用戶正在使用的方案,然後算法對某些策略做了模型迭代或者規則優化(反映在cxr或者更好的用戶體驗)產生了一版新的方案,新方案的上線流程是怎樣的? 方式一:新方案代碼直接發版上線。沒啥優點,缺點是萬一線上用戶使用效果不好,很

原创 常用的一些 git 命令

1,刪除遠程分支 git push --delete origin 遠程分支名 2,查看所有的分支 git branch -a 3,查看本地分支關聯的遠程分支 git branch -v git branch -vv 4,查看本地分支關聯的

原创 ES terms 聚合功能理解

本文介紹 ES(ES7.8.0) 裏面兩種不同的聚合統計,cardinality aggregations 和 terms aggregations。爲了方便理解,以 MySQL 表的示例數據來講解 ES 的這兩個聚合功能。MySQL 表結

原创 使用mybatis-generator生成的mapper執行insert時獲取主鍵id

有時候,我們在往mysql數據庫插入一行數據的同時,想要知道這一行數據的主鍵id。mybatis提供了2種獲取自增主鍵的方式:一種是,另一種是使用這三個屬性: useGeneratedKeys、keyProperty、keyColumn 在

原创 MAC OS 10.15 Lucene 源碼分析環境搭建

MAC OS 10.15 Lucene 源碼分析環境搭建 lucene-solr 的github 項目中的 README 其實已經講得很清楚了,但搭一個大項目的環境還是耗時耗力的。如果出現下載失敗的問題,不用擔心,重試就好 1,找到luc

原创 Lamport Logical Clock 學習

1,導論 ①如何在分佈式環境下定義系統中所有事件的發生順序?②分佈式環境下多個進程競爭資源時如何互斥?③什麼是偏序,偏序的作用是什麼,有什麼不足?④什麼是全序,全序的作用是什麼,有什麼不足?⑤爲什麼需要物理時鐘,物理時鐘如何同步?下面來進

原创 JAVA final 、super 關鍵字以及繼承關係中父類與子類實例變量初始化的 理解

1,final 修飾符修飾變量、方法、類 時有什麼作用? ①final 修飾變量:該變量被賦初值後,不能對它重新賦值 ②final 修飾方法:此方法不能重寫,即父類中某方法被final修飾,在子類中將不能定義一個與父類final 方法同名

原创 使用JAVA泛型實現快速排序

一,快速排序介紹 ①分治特性:快速排序是分治思想的一種體現,在進行每一輪排序前先選定樞軸(pivot)元素,經過一輪排序後,所有比樞軸元素小的元素在樞軸元素的左邊,所有比樞軸元素大的元素在樞軸元素的右邊。這樣,經過一輪排序後,就把整個待排

原创 各種排序算法的理解

  一,直接插入排序         總體思路:位於表中後面的元素依次與表中前面的元素比較,若比之小,則還需繼續和更前面的元素比較,直至遇到一個比它大的元素或者比較到第一個元素(哨兵)了。                  ①先將第一個

原创 分佈式系統概念--第一篇 一致性協議、一致性模型、拜占庭問題、租約、副本協議

1,一致性協議 兩階段提交協議與Raft協議、Paxos協議 ①兩階段提交協議 在分佈式系統中,每個節點雖然可以知曉自己的操作時成功或者失敗,卻無法知道其他節點的操作的成功或失敗。當一個事務跨越多個節點時,爲了保持事務的ACID特性,需

原创 快速排序中的分割算法實現

這裏介紹快速排序使用到的兩種分割算法。 對於快速排序而言,先選定一個樞軸元素,以樞軸元素爲基準比樞軸元素小的元素放在樞軸元素的左邊,比樞軸元素大的元素放在樞軸元素的右邊。這就是一次分割過程。 1,先介紹第一種分割算法 該算法是《算法導論》

原创 Spring註解是如何生效的?

Spring註解是如何生效的? 現在大部分開發已經採用Spring Boot了,少了很多配置文件,方便了許多。以前在使用註解,比如@Autowired、@Resource 或者事務相關的一些註解時,我們會首先在配置文件裏面加入這樣的配置:

原创 三個線程交替按順序打印ABC之條件隊列的理解

如題。本文給出交替打印的代碼示例,並解釋了條件變量在代碼實現中所起的作用。 使用三個線程,一個只負責打印A,另一個只負責打印B,最後一個只負責打印C 按順序交替。即打印A後,才能打印B,打印B後,才能打印C 由於按序交替,最好採用條件隊

原创 數據結構--圖 的JAVA實現(下)

在上一篇文章中記錄瞭如何實現圖的鄰接表。本文藉助上一篇文章實現的鄰接表來表示一個有向無環圖。 1,概述 圖的實現與鄰接表的實現最大的不同就是,圖的實現需要定義一個數據結構來存儲所有的頂點以及能夠對圖進行什麼操作,而鄰接表的實現重點關注的

原创 開源作業調度軟件Quartz2.2.2 官方Examples學習

1,Examples 1 中學到的東西 ①在Quartz中,作業的配置與作業具體需要完成什麼任務是分開的。作業的配置代碼編寫在一個類中;如獲取調度器: SchedulerFactory sf = new StdSchedulerFact