原创 分佈式系統設計

高可用分佈式系統應該要考慮以下幾個大點和一些小點,大點與小點之間其實有包含、有交集,只是爲了方便分點論述才分類。 四個大點: 容錯能力(服務隔離、異步調用、請求冪等性、分佈式鎖) 可伸縮性(有 / 無狀態的服務) 一致性(補償事務、重試)

原创 類加載器:ServiceLoader簡述

ServiceLoader與ClassLoader是Java中2個即相互區別又相互聯繫的加載器.JVM利用ClassLoader將類載入內存,這是一個類聲明週期的第一步(一個java類的完整的生命週期會經歷加載、連接、初始化、使用、和卸

原创 java重寫hashcode方法那點事

今天在調用別人寫的對象時發現一個很奇怪的問題,首先描述下需求: 簡要需求:從數據庫查詢一個對象Dish,將這個Dish上傳到某某平臺,過一點時間後,某某平臺會將該Dish對象傳回來,我們需要判斷這個對象在

原创 性能分析3~jstack命令分析:死鎖原因、cpu使用率過高的線程

jstack主要用來查看某個Java進程內的線程堆棧信息。根據這個命令的輸出可以定位某個進程的所有線程的當前運行狀態、運行代碼,以及是否死鎖等等。 語法格式如下: jstack [option] pid jstack [option]

原创 redis安裝、啓動、命令執行

mac下redis安裝請參考文章:https://www.cnblogs.com/feijl/p/6879929.html寫的簡介明瞭,關鍵是靠譜,親自試了,沒問題;1、關閉、啓動redis服務端:必須先到redis的安裝目錄下:cd /

原创 重寫toString方法的好處

舉例:比如一個java類,未重寫toString方法: public class TableInfo { private String tableID; private String tableName; pr

原创 性能分析5~top命令、jps命令、jstack命令:分析多線程下HashMap卡死原因分析

多線程下,HashMap使用很容易出bug,直接被卡死,原因分析我們先看一段代碼: import java.util.HashMap; import java.util.Map; /** * 多線程下HashMap卡死原因分析 *

原创 性能分析2~jstat命令

       上一篇文章top命令,估計大家並沒有感覺到top命令有啥用,這一篇文章我們結合jstat命令來講解一下;個人習慣,上來直接講理論已經不適合我這種很難靜下心來的同志了,我們直接看實例: 假設我們使用top命令發現進程id爲15

原创 ThreadPoolExecutor中的RejectedExecutionHandler淺析

當ThreadPoolExecutor中的線程都已經忙於執行,且有界隊列也滿了,這個時候就需要自己寫reject策略;此處給一個demo,供大家去理解和參考: 1、先寫一個可執行的線程 package zhengchao_001_005.

原创 Java中執行Groovy腳本

        最近項目有個需求,需要執行一個方法,方法的目的是輸入一個金額XXX,根據抹零方式算出抹零後的金額,但是有個問題,困難場景:上游又獲取不到抹零的方式;下游又獲取不到XXX這個金額;這個時候需要寫一個Groovy腳本,他有一個

原创 抽象類和接口 應用場景

很多童鞋經常背誦抽象類和接口的區別,使用場景,但並沒有深入瞭解什麼時候使用他們,或者使用哪個更好,本文舉一小例,並不一定完全正確,歡迎讀者吐槽; 我們看一個銀行借款的領子,中國人民銀行管理並監督所有的銀行,它制定了一個規範,所有的銀行在

原创 mybatis 操作數據庫的 單例模式實現

閱讀前,希望您已經有以下基礎: 1、單例模式(枚舉實現、靜態內部類實現) 2、Mybatis基礎知識 3、ThreadLocal原理及作用 import org.apache.ibatis.io.Resources; import org

原创 使用maven插件反向映射generatorConfig.xml生成代碼

一、 配置Maven pom.xml 文件<!-- 反向映射 --> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-genera

原创 Java寫一個簡單的死鎖程序

package deadlock; public class DeadlockSample { //必須有兩個可以被加鎖的對象才能產生死鎖,只有一個不會產生死鎖問題 private final Object obj1 =

原创 讀懂 MySQL 執行計劃

前言 在之前的面試過程中,問到執行計劃,有很多童鞋不知道是什麼?甚至將執行計劃與執行時間認爲是同一個概念。今天我們就一起來了解一下執行計劃到底是什麼?有什麼用途? 執行計劃是什麼? 執行計劃,簡單的來說,是SQL在數據