原创 動手寫一個雙向鏈表

單向鏈表就不寫了,進來直接寫雙向鏈表。 首先需要了解雙向鏈表的接口。將鏈的節點抽象爲一個對象,對象存在兩個指針,一個指向前面一個節點,一個指向後面一個節點。 實現雙向鏈表的功能就是對鏈的指針操作。 package com.link

原创 動手寫一個阻塞隊列

之前看隊列,都是停留在看和使用的階段。再次看隊列的時候,忽然發現並沒有深入到底層。比如:阻塞隊列時如何阻塞的呢?是監聽,還是等待呢?然後看着看着就看到了Lock和ReentrantLock,爲什麼不使用synchronized呢?

原创 ZooKeeper 典型應用場景-Master選舉

使用Zookeeper,大多數都是使用Zookeeper的服務註冊和發現,Master選舉。 1)什麼是註冊?怎麼註冊? 2)什麼是發現?怎麼發現? 3)什麼是選舉?爲什麼選舉?怎麼選舉? 4)臨時節點的生命週期是什麼? 5)心跳

原创 動手寫一個二叉搜索樹

前面已經手寫了一個簡單的雙向鏈表 在此基礎上再寫一個簡單的二叉搜索樹【這裏僅簡單實現】。二叉搜索樹在結構上跟雙向鏈表比較相似,將左節點看做左子樹,將右節點看做父節點,只是多個右字數的對應。 package com.tree; i

原创 SpringCloud學習-(4)服務消費與負載均衡(自定義ribbon)

前面一篇 SpringCloud學習-(3)服務消費與負載均衡(ribbon) 介紹了ribbon對客戶端請求的負載均衡操作,從刷新瀏覽器端口變化規律可以看到ribbon默認使用的是輪詢的方式對服務提供者提供的服務進行訪問。那

原创 動手寫一個二叉平衡樹

前面已經實現了一個二叉搜索樹 比較複雜的就是在刪除的時候,需要做比較多的判斷,總體沒那麼難理解。 在二叉樹的基礎上,有一個叫做二叉平衡樹的數據結構,實現起來難度還是比較大的。具體代碼可參考:AVLTree 點贊

原创 SpringCloud學習-(3)服務消費與負載均衡(ribbon)

前面一篇SpringCloud學習-(2)服務的註冊與發現(Eureka),提供者向eureka註冊中心註冊了一個sayHello服務,然後訪問提供者即可(是不是感覺有點兒繞路了呢?肯定有用啦,慢慢看)。 1.啓動eureka註冊

原创 海量數據快速查找出現頻率topN

海量數據尋找出現頻率最多的topN,且內存受到限制,該如何處理呢?主要思想就是分治。如果使用框架處理,hadoop的MapReduce運算框架是可以解決的,且是分佈式的處理。但是單機版該如何處理呢。空閒時間使用python3實現了

原创 SpringCloud學習-(2)服務的註冊與發現(Eureka)

前面SpringBoot已經介紹了SpringBoot相關使用,如果對SpringBoot不瞭解可以先看一下。 1.SpringCloud介紹 SpringCloud 爲開發人員提供了快速構建分佈式系統的一些工具,包括配置管理、

原创 BeanUtils.copyProperties解決null值覆蓋問題

這裏使用的是Spring提供的BeanUtils的工具類(commons-lang3可參考)。在做數據變更的時候,使用BeanUtils.copyProperties(newdata,dbdata)進行數據變更的時候,由於前臺展示

原创 Springboot2+hibernate5 sessionFactory配置

老的工程,使用的是Hibernate3,打算升級爲SpringBoot工程。底層封裝了很多,短時間無法遷移到其他持久化框架,所以分兩步,先使用Hibernate過渡,然後再進行其他的遷移。 遷移的過程中,發現sessionFact

原创 Hbase查詢流程

加深一下印象 https://www.imooc.com/article/73049 https://blog.csdn.net/map_lixiupeng/article/details/40857825

原创 elasticsearch常見的幾個報錯解決方案

(1)max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] 切換到root用戶,編輯limi

原创 SpringMVC Controller單例和多例,靜態變量和普通成員變量

對於SpringMVC Controller單例和多例,下面舉了個例子說明下. 第一次:類是多例,一個普通屬性和一個靜態屬性。 參考:https://blog.csdn.net/qq_27026603/article/details/

原创 maven配置多環境springboot配置多環境

Java項目多環境配置Maven方式使用Springboot Maven方式 使用maven 本地環境、開發環境 、測試環境、生產環境打包。 在平常開發的過程中,我們的項目配置文件經常有有幾套分別對應自己本地的環境、開發環境、測試環境