原创 JVM的垃圾回收算法詳解,不看實在是太虧了 前言 1.引用計數算法 2.根搜索算法 垃圾回收算法

前言 今天同學在課前演講,大致講了一下java虛擬機,講的很快也很淺,反正聽的迷迷糊糊的,自己下來從新進行查找資料進行整理學習,先將JVM裏面的垃圾回收機制中算法進行歸攏,整理如下。 垃圾回收機制圖 JVM的垃圾回收算法詳解,不看實在是太虧

原创 工作10年+,從阿里P8出來,頭髮也沒了,人也虛了,就剩下這份筆記了!

工作了11年,工作壓力大,節奏快,但是從技術上確實得到了成長,尤其是當你維護與大促相關的系統的時候,熬到P8也費了不少心思,小編也是個愛學習的人,把這幾年的工作經驗整理成了一份完整的筆記。此筆記已助朋友拿到騰訊,阿里,美團等9個offer。

原创 Elasticsearch難學?十萬字筆記 83.8k星,盤 目錄展示 內容展示

Elaticsearch,簡稱爲es, es是一個開源的高擴展的分佈式全文檢索引擎,它可以近乎實時的存儲、檢索數據;本身擴展性很好,可以擴展到上百臺服務器,處理PB級別(大數據時代)的數據。es也使用 Java開發並使用Lucene作爲其核

原创 利用maven-shade-plugin解決不兼容依賴衝突 問題描述 解決方法 創建新工程 更改我的工程依賴

問題描述 在maven工程中,我們常常遇到底層依賴包的版本衝突問題。如果高版本對低版本兼容,那麼我們可以使用maven的 exclusions 排除掉低版本。但如果版本互不兼容,甚至是不同jar有相同類名的衝突,就比較棘手了。 比如,我在某

原创 volatile關鍵字的原理和要避免的誤區 背景

背景 最近做code review看到有的同學在承載緩存數據的變量里加了volatile關鍵字。想起來之前項目中也看到有的同學習慣在從配置中心獲取的配置數據的變量上加volatile。今天就來探討一下這個volatile加的有沒有必要。 v

原创 synchronized的對象鎖和類鎖的區別

synchronized可以鎖對象,代碼塊,類對象 ,那麼他們用起來會有區別嗎,這裏我們用實際代碼來探究下 package com.example.hxk.thread.synchroized; public class SyncTest

原创 新技能 MyBatis 千萬數據表,快速分頁 基本概念 MyBatis 流式查詢接口

基本概念 流式查詢指的是查詢成功後不是返回一個集合而是返回一個迭代器,應用每次從迭代器取一條查詢結果。流式查詢的好處是能夠降低內存使用。 如果沒有流式查詢,我們想要從數據庫取 1000 萬條記錄而又沒有足夠的內存時,就不得不分頁查詢,而分頁

原创 Spring是怎麼解析Xml配置文件路徑中的佔位符的

前言 我們在配置Spring Xml配置文件的時候,可以在文件路徑字符串中加入 ${} 佔位符,Spring會自動幫我們解析佔位符,這麼神奇的操作Spring是怎麼幫我們完成的呢?這篇文章我們就來一步步揭祕。 1.示例 ClassPathX

原创 “高深莫測”的Kafka時間輪原理,原來也就這麼回事 1. 時間輪是什麼 2. 時間的“推進” 3. 爲什麼要用時間輪

【摘要】 Kafka時間輪是Kafka實現高效的延時任務的基礎,它模擬了現實生活中的鐘表對時間的表示方式,同時,時間輪的方式並不僅限於Kafka,它是一種通用的時間表示方式,本文主要介紹Kafka中的時間輪原理。 Kafka中存在一些定時任

原创 有限狀態機的4種Java實現對比

寫在前面:2020年面試必備的Java後端進階面試題總結了一份複習指南在Github上,內容詳細,圖文並茂,有需要學習的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-

原创 Java面試高頻題精選300+道,一份通往大廠的必備指南(pdf文檔) Java工程師高頻面試體系 Java核心知識點體系文檔

就目前大環境來看,跳槽成功的難度比往年高很多。一個明顯的感受:今年的面試,無論一面還是二面,都很考驗Java程序員的技術功底。 最近我整理了一份複習用的面試題及面試高頻的考點題及技術點梳理成一份“Java工程師高頻面試體系.pdf和一份網上

原创 金九銀十準備季:Java異常+Java IO與NIO面試題 Java中的IO與NIO面試題

寫在前面:2020年面試必備的Java後端進階面試題總結了一份複習指南在Github上,內容詳細,圖文並茂,有需要學習的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-Study-

原创 微服務、併發編程、開源框架、分佈式,高效緩存,面試你還缺什麼 目錄 一、性能優化專題 二、微服務架構面試專欄 三、併發編程面試專題 四、開源框架面試專題 五、分佈式面試專題 高效緩存面試專題

今年在面試的過程中以及和身邊的朋友在交流的時候,得到一個通用的點: 傳統的行業需求還在問,但是問的難度加深,新型的技術需求反而詢問更多,尤其是實際操作經驗的詢問 但是說實話,不是說在座的所有人啊,我覺得大部分人很多技術會或者說在自己的pc

原创 關於JavaWeb 亂碼問題解答方案整理 寫在前面

寫在前面 對於一些老司機而言,其實並不太容易遇到亂碼問題,但是對於一些新手來說,亂碼幾乎是家常便飯,而且每當亂碼時,網上搜了一大堆解決方案,發現自己的問題還是沒能解決,其實這就是平時研究代碼不求甚解導致的,亂碼問題,也要去分析,然後才能對症

原创 Java技術轉載——Spring 事務管理機制概述

寫在前面 一般地,用戶的每次請求都對應一個業務邏輯方法,而一個業務邏輯方法往往包括一系列數據庫原子訪問操作,並且這些數據庫原子訪問操作應該綁定成一個事務來執行。然而,在使用傳統的事務編程策略時,程序代碼必然和具體的事務操作代碼耦合,而使用S