20190603
- 函數式編程 一切皆是表達式。
- 命令式編程 是 告訴程序怎麼做
函數式編程 是 告訴程序做什麼
防止又臭又長的代碼:Optional.of(user).map(User::getAddress).map(Address::getCountry).map(Country::getIsoCode).orElse(null); - https://segmentfault.com/a/1190000018936877?utm_source=tag-newest
20190604
- 遇到jdbc.UncategorizedSQLException-Size Overflow
- show variables like ‘%max_allowed_packet%’ 得知閾值是4M,猜想可能是批量更新操作的數據包太大
- 解決方法是設置set global max_allowed_packet = 210241024*10,但萬一後續數據包超過此值呢?
- 所以在批量更新處理中增加分頁
有必要時多層catch異常
20190606
- Operand should contain * column 可能是where條件裏沒有用and隔開而是用了“,”,切記!!
20190612
- 如何保證三個多個線程按順序執行?原來的思考是設置線程的優先級,但線程的執行時搶佔策略,優先級高的只是有更多的可能性搶佔資源而已。真正能保證線程有序執行的是調用線程的join();
- rateLimiter.acquire()完成大流量限流處理;
- Retrofit 結合RxJava實現異步
20190613
- Springboot用更優雅的方式發HTTP請求(RestTemplate詳解)
20190617
- subList 前面閉區間後面開區間 引發的“血案”。
20190618
- ThreadLocal->ThreadLocalMap->Entry[] 層次的理解