扣釘日記 -
正則表達式技巧與注意事項
原創:打碼日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。
簡介
現如今,正則表達式幾乎是程序員的必備技能了,它入手確實很容易,但如果你不仔細琢磨學習,會長期停留在正則最基本的用法層面上。
因此,本篇文章,我會介紹一些能用正則解決的場景,但這些場景如果全自己琢磨實現的話,需要花一些時間才能完成,或者就完全想不出來,另外也會介紹一些正則表達式的性能問題。
匹配多個單詞
比如
regexp
,
正則表達式
扣釘日記 -
傳參base64時的+號變空格問題
原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,非公眾號轉載保留此聲明。
問題發生
上上週,看到一位老哥找我們組同事聯調接口,不知道是什麼問題,兩人坐一起搞了快1個小時,看起來好像有點複雜。
突然,老哥發出一聲卧槽,"我傳參裏的+號,到你這怎麼變成了空格!",這個聲音很大,我明顯的聽到了,很快,我就大概Get到了他們的問題點。
我猜測他們遇到的問題大概如下:
我們的接口協議上,都
urlencode
,
base64
扣釘日記 -
我有一篇Java Stream使用手冊,學了就是你的了!
原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,非公眾號轉載保留此聲明。
簡介
日常編程工作中,Java集合會經常被使用到,且經常需要對集合做一些類似過濾、排序、對象轉換之類的操作。
為了簡化這類操作,Java8添加了一套新的Stream API,使用方式就像寫SQL一樣,大大簡化了這類處理的實現代碼量與可讀性。
基礎Stream函數
比如,我們要查詢雙11期間交易額最大的10筆訂單
JAVA
,
stream
扣釘日記 -
記一次使用gdb診斷gc問題全過程
原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。
簡介
上次解決了GC長耗時問題後,系統果然平穩了許多,這是之前的文章《GC耗時高,原因竟是服務流量小?》
然而,過了一段時間,我檢查GC日誌時,又發現了一個GC問題,如下:
從這個圖中可以發現,我們GC有一些尖峯,有時會突然有大量的內存分配。
查看GC日誌,發現有大對象分配的記錄,如下:
$ gre
gdb
,
jvm調優
,
gc
,
Linux
扣釘日記 -
Java8中那些方便又實用的Map函數
原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。
簡介
java8之後,常用的Map接口中添加了一些非常實用的函數,可以大大簡化一些特定場景的代碼編寫,提升代碼可讀性,一起來看看吧。
computeIfAbsent函數
比如,很多時候我們需要對數據進行分組,變成MapInteger, List?的形式,在java8之前,一般如下實現:
ListPayment paym
hashmap
,
JAVA
,
後端
扣釘日記 -
拒絕蠻力,高效查看Linux日誌文件!
原創:扣釘日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。
簡介
日常分析問題時,會頻繁地查看分析日誌,但如果蠻力去查看日誌,耗時費力還不一定有效果,因此我總結了在Linux常用的一些日誌查看技巧,提升日誌閲讀效率。
grep查找日誌
在我們查找某些異常日誌時,經常需要同時查看異常前面或後面的一些日誌,因為有時前面或後面的日誌就已經標識出異常原因了,而grep的-A、-B、-C
awk
,
less
,
Linux
扣釘日記 -
字符編碼解惑
原創:打碼日記(微信公眾號ID:codelogs),歡迎分享,轉載請保留出處。
簡介
現代編程語言都抽象出了String字符串這個概念,注意它是一個高級抽象,但是計算機中實際表示信息時,都是用的字節,所以就需要一種機制,讓字符串與字節之間可以相互轉換,這種轉換機制就是字符編碼,如GBK,UTF-8
所以可以這樣理解字符串與字符編碼的關係:
字符串是一種抽象,比如java中的String類
utf-8
,
字符編碼
,
unicode