原创 深入理解Java虛擬機(六):內存回收實踐者——經典垃圾收集器

引言 《Java虛擬機規範》中對垃圾收集器應該如何實現並沒有做出任何規定,因此不同的廠商、不同版本的虛擬機所包含的垃圾收集器都可能會有很大差別,不同的虛擬機一般也都會提供各種參數供用戶根據自己的應用特點和要求組合出各個內存分代所使

原创 【Spring Boot】一文帶你掌握面試題

【引言】 最近一段時間,公司招人,面試了不少人,主要是需要做過Spring Boot項目,所以,利用這個機會,結合一些面試題,做了一些整理。 【問題整理】 一. 什麼是Spring Boot? SpringBoot 是 Sprin

原创 【Spring Cloud】學習和搭建Config分佈式配置中心

【學習背景】     上篇博客學習的是Spring Cloud的Hystrix組件,從而保證在高併發情況下,在使用服務熔斷、服務降級、服務隔離等方法,避免服務雪崩效應。本篇博客學習的組件是Config,分佈式配置中心。 【學習內容

原创 深入理解Java虛擬機(五):內存回收方法論——垃圾收集算法

引言 從如何判定對象消亡的角度出發,垃圾收集算法可以劃分爲“引用計數式垃圾收集”(Reference Counting GC)和“追蹤式垃圾收集”(Tracing GC)兩大類,這兩類也常被稱作“直接垃圾收集”和“間接垃圾收集”。

原创 深入理解Java虛擬機(四):關於對象

引言 在堆裏面存放着Java世界中幾乎所有的對象實例,垃圾收集器在對堆進行回收前,第一件事情就是要確定這些對象之中哪些還“存活”着,哪些已經“死去”(“死去”即不可能再被任何途徑使用的對象)了。 判斷方法 1. 引用計數算法? 很

原创 深入理解Java虛擬機(三):實戰OutOfMemoryError異常

引言 在系列文章的第一篇中,我們就瞭解到,除了程序計數器外,虛擬機內存的其他幾個運行時區域都有發生OutOfMemoryError(下文稱OOM)異常的可能。本篇博客將通過代碼示例來再現異常情景,最後也會總結若干最基本的與自動內存

原创 【Spring Cloud】Hystrix實現服務保護

【學習背景】 隔了很長一段時間,沒有更新Spring Cloud系列博客了,最近一直在看《重新定義Spring Cloud實戰》一書,發現書中寫了一些深層次的東西,對於之前自己有學習的一些組件,如Eureka、Feign、Ribb

原创 【Spring Boot】Mybatis Plus 2.X 自動生成代碼配置

【引言】 在前面的博客《知道Mybatis,知道Mybatis-Plus麼?》一文中,對Mybatis-Plus做了一個簡單的認識及demo示例,Mybatis的增強版,確實很強大,更加簡單高效。其中有提到一個強大的功能之一是內置

原创 【Spring Boot】Mybatis Plus 3.1.X 自動生成代碼配置

【引言】     在前面的spring boot與mybatis plus 集成的相關博客中,用的是2.x的版本,而mybatis plus已經發布3.1.x版本,所以,參照着官方文檔,將集成spring boot應用,實踐下代碼

原创 深入理解Java虛擬機(一):Java虛擬機內存區域介紹

引言 對於Java程序員來說,在虛擬機自動內存管理機制的幫助下,不再需要爲每一個new操作去寫配對的delete/free代碼,不容易出現內存泄漏和內存溢出問題,看起來由虛擬機管理內存一切都很美好。 不過,也正是因爲Java程序員

原创 深入理解Java虛擬機(二):HotSpot虛擬機對象探祕

引言 通過上篇博客,我們已經瞭解了Java虛擬機的內存區域的劃分及每個區域存儲的內容,那麼,本篇博客將以HotSpot虛擬機和內存區域Java堆爲例,繼續深入瞭解內部是如何創建、佈局和訪問的。 探祕之旅 1. 對象的創建 Java

原创 【定時任務】學會自己寫cron表達式

引言 定時任務接觸的框架不少,每個定時任務都會寫一個cron表達式,也就是定時任務的執行時間。以前每次寫,不管是每隔多少分鐘執行一次,每天幾點執行一次,都是現查寫上就行。 而現在這個項目組,每次上線時間都不確定,有時候需要執行一些

原创 【Mybatis-Plus】條件參數查詢手冊

【引言】 使用mybatis-plus框架的基礎上,直接使用其中的條件參數進行查詢還是很方便的。但每次使用到像大於、不等於這樣一些不常用條件時,都需要現查,所以記錄在這篇博客裏,當作一個自己的查詢手冊。 【手冊】 查詢方式

原创 【Mybatis-Plus】使用updateById()、update()將字段更新爲null

問題背景 昨晚同事找我幫他看一個問題,他使用mybatis-plus中提供的updateById方法,想將查詢結果中某個字段原本不爲null的值更新爲null(數據庫設計允許爲null),但結果該字段更新失敗,執行更新方法後還是查

原创 【MySQL】表字段字符集不同導致的索引失效問題

問題背景 在一次開發任務中,同事跟我說他開發的一個列表分頁查詢請求要耗時10多分鐘,查詢SQL是新建的一個表關聯了兩張主表,主表數據量較大。但正常情況下如果有索引的話,查詢也不會慢,這顯然是有問題的。 問題原因 通過排查,得知問題