原创 學習進階之Zookeeper學習

如何理解zookeeper? 1、背景 在一個系統中,多個服務可能都會請求一個資源,多個服務同時請求時可能存在髒數據的問題,爲了避免這種問題我們需要對多個服務進行上鎖,可以通過調度算法來規範服務之間的請求次序。這樣其中一個服務請求

原创 Mybatis中的foreach用法

在MySQL中我們要實現in的篩選查詢,我們一般直接通過 select * from user where id in (2,3) 這樣直接通過 in 操作就可以進行篩選,但是在Mybatis中卻無法直接使用 in ,這就需要使

原创 BigDecimal的相加問題

1、累加int型數據 對於使用BigDecimal的add方法進行相加操作時,累加整型的數據沒有問題,但是當我們累加BigDecimal類型的數據時,會發現數據並沒有進行累加,代碼如下:new BigDecimal中放入的是一個i

原创 從源碼分析Class.forName與ClassLoader的區別

前言 今天看Java代理的一些文章的時候,通過動態代理想到了反射的問題,然後就想到了以前面試的時候被問到的一個面試問題:Class.forName與ClassLoader的區別?,自己當時雖然回答上來了,但是回答的並不具體,今天

原创 Java內存溢出排查過程

前言: 今天看到了敖丙的一篇關於排查堆內存溢出的博文,是自己沒有接觸過的知識,所以仿照過程自己也實驗了一遍學習這部分的一些知識! 首先我使用的是Windows電腦,所以查看堆空間的插件在這裏! 1、先看自己電腦的堆空間 2

原创 resultMap的一對多聯合查詢

前言 最近做一個問卷系統的項目,問卷系統包含了三部分,問卷、問題、問題選項,然後呢爲了給前端數據,就要把這部分數據一起查出來,所以爲了解決這個問題呢,就想到了使用resultMap但是沒做過resultMap中嵌套resultM

原创 二叉樹、平衡二叉樹、紅黑樹、B-Tree、B+Tree解析(上)

前言 前幾天學習了ConcurrentHashMap的一些結構,瞭解了底層通過鏈表以及紅黑樹來實現的數據結構,所以在此基礎上想要學習紅黑樹的一些知識。當然了既然要學習紅黑樹就要從二叉樹、平衡二叉樹進行學習,畢竟紅黑樹是在平衡二叉

原创 Git合併分支操作完整流程

前言 最近上手了新的項目,自己寫的代碼提交到了dev分支,本來就想在這個分支自己自生自滅,但是呢我的頭頭讓我合併下master分支,然後部署下項目!臥槽!!!內心吐槽三連!!!合併出問題了咋整???合併代碼覆蓋了咋整???沒合併

原创 Java併發編程之原子性-Atomic源碼詳解

1、Atomic中存在Atmomicxxx的類,都是通過CAS來實現原子性的。 對於平時適用count++問題,count++並不是線程安全的,所以在多線程情況下,適用count++會出現得到的值並不是我們期望的值。 問題如下

原创 跟面試官侃半小時MySQL事務隔離性,從基本概念深入到實現

提到MySQL的事務,我相信對MySQL有了解的同學都能聊上幾句,無論是面試求職,還是日常開發,MySQL的事務都跟我們息息相關。 而事務的ACID(即原子性Atomicity、一致性Consistency、隔離性Isolatio

原创 關於HashMap的高頻面試題

前言 今天上班看到一篇博文很好,是自己沒有了解過的,今天抽空也寫個博文記錄一下這部分知識點,加強自己的知識積累! 好了言歸正傳: 1、那你跟我講講HashMap的內部數據結構? 目前我用的是JDK1.8版本的,內部使用數組 +

原创 Java中中文轉拼音方法

直接上過程: 1、導入依賴: 我使用的是maven,所以直接使用maven依賴 <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->

原创 什麼?搞Java的你還不會Spring?一篇文章帶你掌握

前言 今天看到了大佬的這篇博客,真的認識很多,所以自己想要搬運一下自己想要看時,可以隨時看。覺得寫的真的很全面很細緻了。膜拜大佬 Spring容器 在SpringIOC容器讀取Bean配置創建Bean之前,必須對它進行實例化。只

原创 SpringBoot集成MongoDB做日誌存儲

前言 今天翻出了以前的一個項目,發現對於日誌的存儲,是存儲在數據庫中的,將對應的入參、出參、請求方式、請求路徑等信息存儲在數據表中,想到這樣的存儲如果時間久了該數據表的數據量會很大,想到用MongoDB試試做日誌的存儲,這樣將日誌

原创 SprngBoot配置swagger

在SpringBoot中配置swagger 1、首先在pom包中加入swagger的依賴 <!-- swagger2 --> <dependency> <groupId>io.spri