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[] 层次的理解