原创 生產環境jvm啓動參數

以下爲生產環境中一套完整的啓動參數配置方案: -server -Xloggc:/var/logs/appkey.gc.log -XX:ErrorFile=/var/logs/appkey.vmerr.log -XX:HeapDump

原创 CMS垃圾回收器細節思考與補充

CMS垃圾回收器作爲jdk6、jdk7、jdk8等jdk版本對老年代進行垃圾回收的首選,其重要性不言而喻。深入理解CMS垃圾回收器的各個階段存在的價值對於性能調優非常關鍵。 CMS的正常過程 參考博客3給出了CMS垃圾回收器的7個步驟:

原创 tsl和cas

TSL是Test and Set Lock的縮寫,是CPU提供的一個原子指令,其工作如下所述:它將一個存儲器字讀到一個寄存器中,然後在該內存地址上存一個非零值。讀數和寫數操作保證是不可分割的——即該指令結束之前其他處理機均不允許訪問該存儲

原创 以kafka爲代表的拉模式和以RabbitMQ爲代表推模式的消息中間件的核心區別

to be continue。。。 kafka是通過一個提交日誌記錄的方式來存儲消息記錄,採用拉模式,而RabbitMQ則採用隊列的方式,屬於推模式。 由於kafka是通過提交日誌記錄的方式,消息的狀態在消費端維護,因而當需要多訂閱時,完

原创 利用Code128字體將文本轉換爲code128條形碼--Java版

          在項目開發過程中,遇到一個需求,需要將大量商品信息存儲到excel中,供用戶下載。其中商品的upc字段需要是條形碼,以方便用戶用掃碼槍掃描。常見的方案是將upc轉換爲條形碼的圖片。但在項目中發現, 當商品的數量爲數千時

原创 IGNORE,REPLACE,ON DUPLICATE KEY UPDATE在避免重複插入記錄時存在的問題及最佳實踐

在實際業務場景中,經常會有這樣的需求:插入一條記錄,如果數據表中已經存在該條記錄則更新它的部分字段,比如更新update_time或者在某些列上執行累加操作等。參考博客1中介紹了三種在MySQL中避免重複插入記錄的方法,本文將在簡單介紹這

原创 jdk8字符串存儲機制及String#intern方法深入研究

在jdk7或jdk8中執行如下代碼: public static void main(String[] args) { System.out.println("第一組對比:"); System.out.p