<tr id="ieeco"><small id="ieeco"></small></tr>
<acronym id="ieeco"></acronym>

自定義博客皮膚VIP專享

*博客頭圖:

格式為PNG、JPG,寬度*高度大于1920*100像素,不超過2MB,主視覺建議放在右側,請參照線上博客頭圖

請上傳大于1920*100像素的圖片!

博客底圖:

圖片格式為PNG、JPG,不超過1MB,可上下左右平鋪至整個背景

欄目圖:

圖片格式為PNG、JPG,圖片寬度*高度為300*38像素,不超過0.5MB

主標題顏色:

RGB顏色,例如:#AFAFAF

Hover:

RGB顏色,例如:#AFAFAF

副標題顏色:

RGB顏色,例如:#AFAFAF

自定義博客皮膚

-+

木子雷的博客

微信搜索【 木子雷 】公眾號,Java原創干貨;只有你想不到的,沒有你找不到的!

  • 博客(57)
  • 論壇 (1)
  • 收藏
  • 關注

原創 排查壓測問題引發的系統性能調優過程

前言:今天測試部門的小夢找到我,委屈巴巴的說我寫的接口有問題,因為她對這個接口進行壓力測試時,發現系統的吞吐量一直上不去,并且 應用服務器 (部署接口項目的服務器) 的CPU、內存等資源的使用率也一直很低,導致一直無法測試出這個接口的壓力峰值。聽小夢說完后,自己心想接口都測試了好幾遍了,接口代碼 絕對不可能有問題的,再說了,有問題也不能承認呀,看來得往別的地方上扯扯呀;然后我說道,接口應該是沒問題的,可能是項目環境部署時有些參數沒進行調優吧,例如:連接數大小設置、JVM參數設置、數據庫參數優化.

2020-12-14 09:42:09 185

原創 SpringBoot 集成 Sharding-JDBC 實現易于擴容的分庫分表

前言:今天來聊下 SpringBoot 集成 Sharding-JDBC 實現分庫分表;為此寫了一個小***Demo***,這個Demo是基于SpringBoot,并集成了 Mybatis、Redis、Swagger(生成在線的接口文檔 )、PageHelper(分頁工具) 等,當然絕對也集成了 Sharding-JDBC ;以及設計了 RestFul 風格的接口 ,添加了 單元測試 。下面簡單介紹下本文的主線:①、首先介紹下Demo的工程目錄,并且介紹下使用的基本環境,如:sql、工程的pom.

2020-06-20 19:09:11 748 1

原創 AQS之CountDownLatch源碼解析

前言:CountDownLatch(倒計數器)是JDK并發包下的一個同步工具類,其內部是依賴于AQS(AbstractQueuedSynchronizer)的 共享鎖(共享模式)。應用場景:針對于 CountDownLatch 倒計時器, 一種典型的場景就是類似于火箭發射;在火箭發射前,為了保證萬無一失,往往還要進行各項設備、儀器的檢測,只有等到所有的檢查完畢且沒問題后,引擎才能點火。那么在檢測環節中多個檢測項可以同時并發進行的,只有所有檢測項全部完成后,才會通知引擎點火的,這里可以使用 Cou

2020-05-31 19:24:08 225

原創 AQS之ReentrantLock源碼解析
原力計劃

前言:Java中的同步類ReentrantLock是基于AbstractQueuedSynchronizer(簡稱為AQS)實現的。今天從源碼來了解下ReentrantLock中非公平鎖的加鎖和釋放鎖(ReentrantLock中支持公平鎖和非公平鎖,默認是非公平鎖的,但可以通過創建ReentrantLock對象時傳入參數指定使用公平鎖)。在了解ReentrantLock前,需要對AQS有一定的了解,否則在學習時會比較困難的,并且在通過源碼學習ReentrantLock時也會穿插著講解AQS內容。

2020-05-24 19:32:51 509

原創 使用shell腳本查詢服務器的cpu、內存、磁盤的使用率

最困難的事情就是認識自己!個人博客,歡迎訪問!前言:使用shell腳本查詢服務器的cpu、內存、磁盤的使用率;如果需要對此腳本進行理解的話,請首先熟悉下linux的基本命令和管道符的知識。腳本獻上: #!/bin/bash#計算cpu使用率, -n number:指定在結束前應該產生的最大迭代次數或幀數,一般迭代次數越大,獲取到的cpu使用率越準確; 本腳本中是迭...

2020-01-20 21:32:51 3788 3

原創 懶漢式單例模式為什么要進行二次判空

前言: 在本文中會使用代碼進行展示懶漢單例模式為什么需要進行二次判空;代碼中使用到CountDownLatch 倒計時器,不清楚CountDownLatch使用的請參考此文https://www.jianshu.com/p/f17692e9114f。代碼展示:1、懶漢式單例模式類public class Singleton { //...

2019-07-30 20:36:36 2664

原創 面試手寫HashMap,手撕HashMap

前言: 現在面試時,面試官經常會問到HashMap,簡單點就會問下HashMap的一些關鍵知識點,困難些的可能會當場讓你手寫一個HashMap,考察下你對HashMap底層原理的了解深度;所以,今天特別手寫了一個簡單的HashMap,只實現了 put、get、containsKey、keySet 方法的 HashMap,來幫助我們理解HashMap的底層設計原理。本文...

2019-07-13 23:51:24 1463

原創 Java實現 “ 將數字金額轉為大寫中文金額 ”

最困難的事情就是認識自己!個人博客,歡迎訪問!前言: 輸入數字金額參數,運行程序得到其對應的大寫中文金額;例如:輸入—12.56,輸出—12.56:壹拾貳元伍角陸分;重點來了:本人親測有效。奉上代碼:/** *@Title: ConvertUpMoney * @Description: 將數字金額轉為大寫漢字金額 * @date: 2019年6...

2019-06-18 23:35:16 22838 17

原創 通過對比 Dubbo和Spring Cloud ,綜合選擇最合適的

前言: 目前學習了下Dubbo 和 Spring Cloud,并且在簡單學習后,總結了下這兩者之間簡單的區別;如果以后有需要搭建分布式系統的需求,可以根據這兩者之間的區別,再根據當前公司的業務等情況選擇最為合適的來搭建自己的分布式系統。Dubbo+Zookeeper vs Spring Cloud:框架比較的方面 Dubbo+zookeeper ...

2019-06-17 19:54:39 5265

原創 兩個程序員為 insert into select 著迷一晚,它到底有什么魔力?

一、前言:今天遇到一個事情,兩個程序員對 insert into select 著迷一晚,這究竟是為神魔呢? 下面就簡單說說原由;當天,在 MySql數據庫 中,程序員A使用 insert into select 對某張表中的一部分數據做備份,然后同時程序員B使用程序對這張表做數據插入操作,最后出現了程序員B的插入操作失敗的情況,然后他們就研究了這個問題一晚上,最終找到了導致問題出現的原因。下面就通過簡單的模擬場景復現問題,然后并研究出現問題的原因,最后再找到避免問題出現的方法;本文主線:①、場.

2021-05-15 20:25:49 24 1

轉載 IDEA中Debug調試的高級武功秘籍助你快速追蹤BUG

前言:Java 中各種 IDE 的 Debug 功能,都是通過 Java 提供的 Java Platform Debugger Architecture (JPDA) 來實現的。借助 Debug 功能,可以很方便的調試程序,快速的模擬 / 找到程序中的錯誤。Interllij Idea 的 Debug 功能上說雖然看起來和 Eclipse 差不多,但是在使用體驗上,還是要比 Eclipse 好了不少。Debug 中,最常用的莫過于下一步,下一個斷點(Breakpoint),查看運行中的值幾個操.

2021-04-02 10:24:54 31

原創 MySql中必須知道的至關重要的三種日志

前言:MySql 中有三種 log 是十分中要的,因為MySql之所以能支持 事務(實現持久化、回滾等)、數據庫崩潰恢復、主從復制等,都是基于這三種日志的。至關重要的三種log:binlog 二進制日志redo log 重做日志undo log 回滾日志本文主線:簡要介紹三種日志MySql事務處理中三種日志承擔的角色簡要介紹三種日志:1、binlog 二進制日志:binlog 二進制日志(歸檔日志),這個日志是由MySql的 server層 進行維護的;不管當前MySq.

2021-03-25 22:13:28 47 1

轉載 一文帶你了解MySql并發事務中的數據庫鎖、隔離級別、MVCC

前言:最近同事開發時遇到了一個事務阻塞的問題,通過網上查詢發現關于MySQL事務、鎖這一塊的資料都比較絮亂,讓人看的云里霧里,所以借著這個機會,剛好也對這一塊內容做一個總結梳理,希望能比較全面去寫一下MySQL的并發事務處理。本文主線:簡述事務的特性與隔離級別聊聊MySql中各種類型的鎖然后再聊聊MVCC是個什么東東接著再聊聊數據庫鎖的觸發及升級,以及死鎖最后說下出現鎖問題時的常見排查命令簡述事務的特性與隔離級別:在講鎖之前,必須要先聊聊 事務的特性與隔離級.

2021-03-05 20:22:42 51

原創 一文讓你了解如何快速、優雅的實現導出Excel

前言:春節假期剛剛過去,大家是不是已經開始了搬磚生活啦,嘻嘻 o(∩_∩)o ,可我還在休假中呢 !好啦,咱們言歸正傳,開始聊聊正文。做過后端管理系統的同學,大概率都會收到過實現 導出Excel 的功能需求,因為這個功能在后臺管理系統中是個必備功能。那大家是怎么實現這個功能的呢?使用Apache提供POI組件實現;使用現成的、簡便的第三方工具庫(避免重復造輪子)Hutool 工具庫中的Excel工具類EasyExcel 阿里開源的基于Java的簡單、省內存的讀寫Excel工具庫.

2021-02-19 17:42:15 69

原創 根據AQS原理使用CAS + volatile實現同步代碼塊

前言:最近看到有人說可以使用 CAS + volatile 實現同步代碼塊。心想,確實是可以實現的呀!因為 AbstractQueuedSynchronizer(簡稱 AQS)內部就是通過 CAS + volatile(修飾同步標志位state) 實現的同步代碼塊。并且ReentrantLock就是基于AQS原理來實現同步代碼塊的;ReentrantLock源碼學習和了解AQS原理可以參考:帶你探索ReentrantLock源碼的快樂 今天,咱們就通過 CAS + volatile 實現一個 .

2021-01-19 18:51:26 100 1

轉載 一文帶你了解數據庫隔離級別和鎖之間的關系

前言:很多人在學習數據庫知識時,往往在學習到隔離級別和數據庫鎖這里有一些疑問:隔離級別和數據庫鎖之間有什么關聯呢?本文就和大家聊聊這兩者之間的聯系,希望對大家有幫助!聊聊兩者之間的聯系:在具體聊之前,咱先記住一句話: 數據庫事務有不同的隔離級別,不同的隔離級別對鎖的使用是不同的,鎖的應用最終導致不同事務的隔離級別。首先來了解下有哪四種隔離級別:讀未提交:(Read Uncommitted)讀已提交(Read Committed) 大多數數據庫默認的隔離級別重復讀(Repeata.

2021-01-12 09:47:14 274 1

原創 一次對group by時間導致的慢查詢的優化

前言:最近在測試環境中點擊一個圖表展示頁面時,半天才得到后臺響應的數據進行頁面渲染展示,后臺的響應很慢,這樣極大的降低了用戶的體驗;發現這個問題后馬上進行了排查 ,通過排查發現是由一個查詢很慢的 group by 語句導致的;本文主線:①、簡單描述下排查步驟;②、對 group by 查詢慢進行優化;簡單描述下排查步驟:排查主要分為了兩個步驟:后臺接口的監控,看看哪個方法調用時耗時多數據庫開啟慢查詢日志,記錄執行很慢的SQL推薦使用阿里開源的Java線上診斷工具 Artha.

2021-01-04 09:51:55 494

原創 不看后悔的項目中線程池實際應用

前言:最近在看線程池方面的內容,結合源碼學習完其內部原理后,心想自己在項目中有實際使用過線程池嗎?想了想,確實在項目中很多地方使用到了線程池;下面來簡單聊下最近在日志方面中多線程的應用:服務接口日志異步線程池化入庫處理定時任務中使用多線程進行日志清理本文主線:①、線程池基本原理解讀;②、線程池實際應用例子:線程池應用 Demo 項目結構描述服務接口日志異步線程池化入庫處理定時任務中使用多線程進行日志清理線程池基本原理解讀:啥也不說,先貼一張腦圖,通過腦圖對.

2020-12-30 11:03:49 590 2

轉載 后端程序員必須知道的接口冪等性

前言:最近負責的項目出了一個問題,用戶操作回退失效。原本的邏輯設計中,操作回退是需要回到操作前的狀態。經過查看日志發現,用戶之前的操作做了兩次,也就是說提交操作的接口被調用了兩次,導致用戶上一次的狀態和這一次的狀態是一樣的,所以操作回退是沒有問題的,問題出在了操作的接口被調用了兩次 。對于防止重復提交,一般是放在前端頁面控制的,用戶點擊完按鈕之后,后臺返回成功的結果,按鈕就不可見,實踐證明,客戶端的限制操作不是絕對可靠的。針對上面的場景問題,進而引發了下文的內容;本文主線:①、什么是接.

2020-12-04 12:45:07 115

轉載 一文讓你徹底明白ThreadLocal

前言:ThreadLocal在JDK中是一個非常重要的工具類,通過閱讀源碼,可以在各大框架都能發現它的蹤影。它最經典的應用就是 事務管理 ,同時它也是面試中的???。今天就來聊聊這個ThreadLocal;本文主線:①、ThreadLocal 介紹②、ThreadLocal 實現原理③、ThreadLocal 內存泄漏分析④、ThreadLocal 應用場景及示例注:本文源碼基于 JDK1.8ThreadLocal 介紹:正如 JDK 注釋中所說的那樣: ThreadLocal .

2020-12-02 19:23:23 1857 5

原創 初聞MongoDB(一)、從零帶你了解MongoDB的前世今生

前言:最近在看MongoDB相關知識,剛開始聽到MongoDB時,一臉懵圈,這是個啥子數據庫呀 。但是通過學習后,發現這個數據庫挺牛掰的呀;嘿嘿 。。。。下面就帶大家一起聊聊這個數據庫 ,看看它到底有什么牛掰之處 。本文主線:①、MongoDB 簡介②、MongoDB支持的功能有哪些?③、MongoDB的存儲引擎簡述④、MongoDB知識擴展MongoDB 簡介:MongnDB是一個 分布式文件存儲數據庫 (或叫文檔數據庫);MongoDB是一個介于 關系數據庫和非關系數.

2020-11-29 15:31:40 88

轉載 Linux查看與測試磁盤IO性能的Shell命令

前言最近,公司需要設計一個監控系統,監控部署了服務的服務器的磁盤IO的情況;設計方案:寫一個Shell腳本,然后使用Java調用腳本執行,獲取執行時的磁盤IO情況,包括磁盤IO的負載、讀寫等待時間的數據;開始時,磁盤IO相關的Shell命令不太熟悉,然后就去網上一頓查詢操作,最后本文就誕生了!本文主線:①、查看磁盤 IO 性能的Shell命令②、測試磁盤 IO 性能的Shell命令查看磁盤 IO 性能的Shell命令top 命令:top 命令通過查看 CPU 的 wa% 值來判斷

2020-11-25 09:44:57 629

轉載 一文圖解JVM面試的全部考點

前言本文將通過簡介Class字節碼文件,Class類加載,類加載完后的JVM運行時數據區,運行中的GC垃圾回收等相關知識帶大家了解在面試時JVM常問的考點。注:本文為轉載文章,原文作者:ElasticForce , 原文地址:JVM面試??键c全在這:多圖看懂Java虛擬機 。本文主線:①、Class字節碼文件②、Class類加載③、JVM運行時數據區④、GC 垃圾回收⑤、常見的垃圾回收器Class字節碼文件class文件也叫字節碼文件,由Java源代碼(.java文件)編譯而成的字

2020-11-23 09:28:21 76

原創 面試官說道,小伙子耗子尾汁,查詢SQL的執行流程難道都不知道嗎?

前言最近朋友小王正在找工作,然后有一個面試官問他知不知道 “查詢SQL具體的執行流程” 。小王說不知道呀,然后面試官直接對小王說:小伙子 耗子尾汁(好自為之) ,怎么連這么簡單的都不知道呢?小王聽后脫口而出:哼!面試官你 不講武德 ,不按套路出牌呀,你應該問問索引相關的知識呀,這個我倍清楚。在聽完小王描述后,自己也在腦海中搜了搜這個知識點,可憐的是我的知識庫里也沒找到相關內容,然后就去面壁思過了,隨后本文就誕生了。注意 :本文主要以 MySql 為例;說到了MySql了,然后再嘮

2020-11-21 09:58:43 111

轉載 一文讓你徹底明白JVM參數該怎么設置

前言在網上查了很多如何配置JVM參數的講解文章,但是生產環境里JVM參數的值到底配置為多少,卻沒能得到一個具體的規范;確實,生產環境受到各方面的影響,設置合適的JVM參數實在比較困難,但是本文將會給大家一個相對合理的參數設置指標。本文主線①、JVM運行時數據區分析②、JVM參數設置時的注意點③、簡單的GC垃圾回收過程描述④、最終JVM參數配置指南本文為轉載文章,原作者:藍山牧童, 原文地址:jdk1.8——jvm分析與調優JVM運行時數據區分析下面將主要分析下 1.7、1.8 兩

2020-11-16 22:02:32 427

原創 自定義注解的魅力你到底懂不懂

前言你知道自定義注解的魅力所在嗎?你知道自定義注解該怎么使用嗎?本文一開始的這兩個問題,需要您仔細思考下,然后結合這兩個問題來閱讀下面的內容;如果您在閱讀完文章后對這兩個問題有了比較清晰的,請動動您發財的小手,點贊留言呀!本文主線:注解是什么;實現一個自定義注解;自定義注解的實戰應用場景;注意:本文在介紹自定義注解實戰應用場景時,需要結合攔截器、AOP進行使用,所以本文也會簡單聊下AOP相關知識點,如果對于AOP的相關內容不太清楚的可以參考此 細說Spring——AO

2020-11-15 08:45:01 204

原創 數據庫連接池連接耗盡,導致tomcat請求無響應,呈現出假死狀態

前言:最近,測試部門的同事找到我,說他們測試時,沒一會就發現服務接口請求一直無響應,Tomcat跟死掉了一樣,也沒有返回任何的錯誤響應,說讓我趕緊排查下;聽完后,我瞬間激靈了下,妹的,最近老是出問題,領導都要給我開批評大會了。哈哈,開玩笑的,像我這么英俊的人,領導怎么會忍心批評我呢,哼,我把這個問題馬上解決掉,都不會讓領導知道的!簡單說下程序部署情況:tomcat + oracle排查過程:排查時,可以使用命令進行排查,也可以使用可視化監控工具;例如使用使用JDK自帶的 jvisualvm.e

2020-10-18 22:34:43 1601 1

原創 線上服務平均響應時間太長,怎么排查?

最困難的事情就是認識自己!個人網站 ,歡迎訪問!前言:最近線上環境某個接口服務響應時間偏長,導致用戶體驗超差,那平時該怎么快速的排查這類問題呢?①、為代碼添加上詳細的打印日志; 不建議 ,一是線上環境,沒法隨便的重新部署更換了詳細日志的代碼,二是 添加詳細的日志輸出,那就意味這會生成大量的日志文件,這些日志文件會占據大量服務器磁盤空間。②、搭建一個模擬了線上環境的測試環境進行復盤排查;額,出現了這種問題哪有那么多的時間讓你進行環境復盤排查,所以此方案也是 不建議的 。③、線上診斷神器 Ar.

2020-10-06 20:11:58 455 2

原創 JMeter壓測時跑一會聚合報告就不動了

最困難的事情就是認識自己!個人網站 ,歡迎訪問!前言:最近,使用 JMeter 對項目進行壓力測試;起初, JMeter 設置的并發線程數只是10個,然后在進行壓力測試時,發現跑了一會后 JMeter 聚合報告 中的中數字全部不動了(像卡死了一樣);上面簡單描述了本文要說的問題;下面將主要從兩方面來進行聊。①、具體問題描述②、具體的排查思路問題詳述:項目部署情況: 提供服務接口的項目 + Tomcat + Oracle提供服務接口的項目:接口中包含很多的數據庫查詢.

2020-09-24 21:05:10 1013 2

原創 系統優化 - 索引該怎么創建?

最困難的事情就是認識自己!個人網站 ,歡迎訪問!前言:想要徹底明白索引該怎么創建,以及怎樣創建出最合理的索引,首先需要對一些知識要有所了解;本文將從以下幾方面來進行闡述:索引的相關知識(包括索引數據結構等);索引創建的準則/依據;學會查看sql執行計劃,以及哪些sql執行時會導致索引失效;索引基本知識:1、索引的數據結構:索引的數據機構是 B+Tree,B+Tree 是一個多路平衡查找樹。1.1、至于為什么索引使用此數據機構呢?最主要一個原因就是:使用B+Tree這種.

2020-08-29 18:29:30 274

轉載 系統優化 - Tomcat優化,你值得擁有!

前言:Tomcat作為Web應用的服務器,目前絕大多數公司都是用其作為應用服務器的;應用服務器的執行效率會影響系統執行,這里會講Tomcat怎樣進行配置能提高處理性能;除此之外也必然會提到對應的JVM參數的優化的一些經驗。本文為 轉載文章 ,原文地址:系統優化怎么做-Tomcat優化Tomcat的運行模式:運行模式分3種模式:bio:默認的模式,效率比較低nio:優化時使用的模式apr:對系統配置有一些比較高的要求確認Tomcat運行模式:查找配置文件 server.x

2020-08-25 09:36:43 77

轉載 聯合索引在B+Tree上的存儲結構及數據查找方式

最困難的事情就是認識自己!個人網站,歡迎訪問!前言:本篇文章主要是闡述下 聯合索引 在 B+Tree 上的實際存儲結構。本文主要講解的內容有:聯合索引在B+樹上的存儲結構聯合索引的查找方式為什么會有最左前綴匹配原則在分享這篇文章之前,我在網上查了關于MySQL聯合索引在B+樹上的存儲結構這個問題,翻閱了很多博客和技術文章,其中有幾篇講述的與事實相悖。具體如下:很多博客中都是說:聯合索引在B+樹上的 非葉子節點 中只會存儲 聯合索引 中的第一個索引字段 的.

2020-08-14 09:49:45 2563 20

原創 查找字符串中最長不含重復字符的子字符串,計算該最長子串的長度

前言:算法題:查找一個字符串中最長不含重復字符的子字符串,計算該最長子字符串的長度;下面將使用 滑動窗口 方法實現,并通過對滑動窗口算法一步步進行優化,使其空間和時間的消耗一步步降低;什么是滑動窗口?滑動窗口:一般是指 運行在一個大數組上的子數組,該大數組是一個底層元素集合 。例如:假設有大數組 [ a b c d b e f d n ] ,設定一個大小為 3 的小數組 為 滑動窗口 ;則存在下面的窗口:[a b c] [b c d] [c d b] [d b

2020-07-10 21:58:20 434

原創 IDEA對使用了第三方依賴jar包的非Maven項目打jar包

前言:最近,遇到了一個問題,都快把我整瘋了;這個問題開始是由 使用IDEA 對 非Maven項目進行打 Jar 包 引起的;本來就是想簡簡單單的打個 jar 包,并將使用的第三方依賴 jar 包打進去,但是問題就出現在了項目中依賴的第三方 jar 包( bcprov-jdk15on-1.54.jar )存在簽名,那在打包過程中會把 簽名 破壞掉,導致在使用打好的jar包時報錯: **JCE cannot authenticate the provider BC ** 。注意:如果依賴的第三方j.

2020-07-03 11:26:11 576

原創 旋轉鏈表?面試官你確定要讓手寫這個嗎?

前言:今天練習了一道關于單鏈表的算法題 《旋轉鏈表》,由于之前寫過一篇 《單鏈表反轉?面試官你確定要問這個嗎?》 的文章,然后今天又碰到了這道有關單鏈表的算法,就想著再 “水篇文章” 吧(帶引號的哈),可以證明我沒偷懶,按時寫作業了。嘿嘿 . . . . . . . . . 接下來,①、首先回憶下單鏈表的數據結構 ;②、詳解描述下什么是旋轉鏈表(題目描述); ③、圖解旋轉鏈表代碼數據結構:1. 單鏈表的數據結構:單鏈表是一種線性結構,它是由一個個 節點(Node) 組成的。并且每個節點(N

2020-06-07 19:25:53 131

原創 模擬實戰排查堆內存溢出問題 OOM Error : Java heap space

前言:模擬實戰中排查堆內存溢出(java.lang.OutOfMemoryError: Java heap space)的問題。堆內存溢出的原因:一般都是創建了大量的對象,這些對象一直被引用著,無法被GC垃圾回收掉,最終導致堆內存被占滿,沒有足夠的空間存放新創建的對象時,就會出現堆內存溢出問題。在實際的業務場景中出現內存溢出的問題,排查起來一般是十分困難繁瑣的,本文將通過結合一個簡單的實例來闡述排查的具體思路和步驟。準備:注意:在實際場景中,一般都是部署在Linux服務器中的項目報出內存溢出

2020-05-15 15:25:01 358

原創 使用Java實現簡單的監控系統

本文只是簡單介紹了下監控系統實現的思路,具體還需根據自己需求實現。前言:目前存在一個后臺服務系統,此時需要配套一個監控系統,對這個后臺服務系統進行監控。下面會涉及到兩個系統,后臺服務系統(這是已經存在的系統),監控系統(此次需要進行開發的系統)。注意:后面統一將后臺服務系統稱作服務系統。具體需求:1、監控服務系統的運行狀態,服務系統是否存活,采用模擬數據進行訪問接口,如果已down則需...

2020-05-05 15:15:36 3540 1

原創 經典面試題:靜態代碼塊、靜態屬性、構造方法的執行順序

前言:Java中三目運算符的復雜用法,讓程序看起來更加簡潔,但是代碼易讀性會降低。大家根據實際情況使用喲!代碼:/** * @Title: ThreeEyeTest * @Description: * @author: 好,你來了 * @author`s blog: https://leishen6.github.io/ */public class ThreeEyeTe...

2020-04-16 09:26:36 214

轉載 驚!史上最全的select加鎖分析(Mysql),拿它去怒懟面試官,走起!

注:本文為轉載文章,原文作者:孤獨煙 ,原味地址:https://www.cnblogs.com/rjzheng/p/9950951.html引言:大家在面試中有沒遇到面試官問你下面六句Sql的區別呢?select * from table where id = ?select * from table where id < ?select * from table wh...

2020-04-06 15:15:01 326

原創 Java實現LRU緩存算法

最困難的事情就是認識自己!個人博客,歡迎訪問!前言: 什么是LRU算法:LRU是Least Recently Used的縮寫,即最近最久未使用,是一種操作系統中常用的頁面置換算法。應用場景:知道了什么是LRU后,我們再來聊下它的使用場景;在工作中,對于Redis我們一定是比較熟悉的,它是一個內存數據庫;因為它是內存數據庫,并且內存的空間是有限的,如果Redis中數據量很...

2020-03-20 22:36:44 196

空空如也

空空如也

TA創建的收藏夾 TA關注的收藏夾

TA關注的人 TA的粉絲

提示
確定要刪除當前文章?
取消 刪除
彩票送彩金