原创 MySQL事務與樂觀鎖

最近感覺自己好像幹了一件蠢事,寫了一個事務包含A和B兩個操作,然後又在A中加了樂觀鎖,導致失敗率特別高。因此重新看了事務與樂觀鎖的資料。 一次封鎖 兩段鎖 一次封鎖法,就是方法的開始階段,已經預先知道會用到哪些數據,然後全部鎖住,在方法運

原创 java.util.ConcurrentModificationException一次報錯排查

最近遇到了這個報錯,報錯的原因在於調用了ArrayList的sort方法,查看代碼之後發現,sort方法也會改變modCount的值。後續需要注意。 @Override @SuppressWarnings("unchecked") pu

原创 MySQL字段null和not null學習思考

最近,在開發過程中,建表的時候有個涉及到時間的字段。開始時,使用了not null,default值爲0000-00-00 00:00:00。但是有個同事說,這個值很有可能不存在,只有部分情況下才會存在,應當使用null,節省空間。開始時

原创 HBase學習和使用

最近項目中用到了hbase,使用的原因在於HBase可以提供高併發讀寫操作的支持,同時自動切分數據,使得數據存儲具有水平擴展性。   缺點 1 不能支持條件查詢,只支持按照Row key來查詢. 2 暫時不能支持Master server

原创 Java7 hashmap

JDK1.7中的hashmap。 HashMap繼承自AbstractMap,實現了Map、Cloneable、Serializable接口。 默認初始容量爲:1<<4 即 16 最大容量爲:1<<30 即2的30次方 默認負載因子:0.

原创 活鎖 Java併發編程實戰學習

之前一直只看過死鎖,但是不理解活鎖是什麼。 活鎖是由於兩個線程之間相互謙讓導致誰也沒有獲取到資源,誰也沒有執行。 實例可參考: https://blog.csdn.net/amd123456789/article/details/8086

原创 Collection和Collections

Collection接口: int size(); boolean isEmpty(); boolean contains(); Iterator<E> iterator(); Object[] toArray(); <T> T[] t

原创 同步工具類 Java併發編程實戰 學習筆記

阻塞隊列 閉鎖 柵欄 FutuerTask 信號量   同步工具類可以根據自身的狀態來協調線程的控制流。 同步工具類都包含特定的結構化屬性,封裝了一些狀態,這些狀態覺得指定同步工具類的線程是繼續執行還是等待。同時,提供了操作狀態的方法。

原创 ThreadLocal簡單學習使用

有線程隔離性,存儲線程中的局部變量 在線程流程執行完成之後需要清理threadLocal中的數據,避免內存泄漏 感覺threadLocal的一個好處是 在進行對象跨層傳遞的時候,使用ThreadLocal可以避免多次傳遞,打破層次間的約束

原创 redis 熱key、bigKey、布隆過濾器、pipeline

之前在用redis的時候只會覺得說有緩存真好,可以節省大量時間,但是從來沒有想過redis可能會存在的問題。 在這裏記錄下最近自己遇到的以及聽到的可能有問題的地方。 熱Key 熱點key是指瞬間有大量請求去訪問同一個key,從而壓垮緩存服

原创 java.util.ConcurrentModificationException

最近遇到了這個報錯,報錯的原因在於調用了ArrayList的sort方法,查看代碼之後發現,sort方法也會改變modCount的值。後續需要注意。 @Override @SuppressWarnings("unchecked") pu

原创 Unrecognized character escape '*'

最近踩得一個坑,json反序列化的過程中,由於有特殊字符,直接報錯 com.fasterxml.jackson.core.JsonParseException: Unrecognized character escape '*'  其中完

原创 《代碼整潔之道》粗讀思考

最近大概讀了一遍代碼整潔之道,感覺自己目前能想到的需要改進的地方包括: 1. 註釋 在寫代碼的時候很喜歡寫一堆註釋出來,主要還是爲了理清楚思路,然後便於後續再看的時候來理解當時爲什麼這麼做。 但是通過更合理的函數命名可以解決。同時過期的註

原创 CPU密集型和IO密集型與線程池的配置

在看《Java》併發編程的藝術線程池這一塊時,提到了要合理地配置線程池,要分析任務特性。任務的性質:CPU密集型、IO密集型和混合型。 CPU密集型和IO密集型 CPU密集型也是指計算密集型,大部分時間用來做計算邏輯判斷等CPU動作的程序

原创 BigDecimal,BigInteger 學習以及簡單示例

最近的項目中用到了BigDecimal,之前並沒有深入學習使用過,只是大概知道可以用於精確的運算,而float和double是不精確的。 BigDecimal的實現中用到了BigIntegr,因此這裏先學習下BigInteger。 Big