更新于 

Java最佳实践与踩坑

代码篇

01 使用了并发工具类库,线程安全就高枕无忧了吗?
02 代码加锁:不要让“锁”事成为烦心事
03 线程池:业务代码最常用也最容易犯错的组件
04 连接池:别让连接池帮了倒忙
05 HTTP调用:你考虑到超时、重试、并发了吗?
06 20%的业务代码的Spring声明式事务,可能都没处理正确
07 数据库索引:索引不是万能药
08 判等问题:程序里如何确定你就是你?
09 数值计算:注意精度、舍入和溢出问题
10 集合类:坑满地的List列表操作
11 空值处理:分不清楚的null和恼人的空指针
12 异常处理:别让自己在出问题的时候变为瞎子
13 日志:日志记录真没你想象的那么简单
14 文件IO:实现高效正确的文件读写并非易事
15 序列化:一来一回,你还是原来的你吗?
16 用好Java 8的日期时间类,少踩一些“老三样”的坑
17 别以为“自动挡”就不可能出现OOM
18 当反射、注解和泛型遇到OOP时,会有哪些坑?
19 Spring框架:IoC和AOP是扩展的核心
20 Spring框架:帮我们做了很多工作也带来了复杂度

设计篇

21 代码重复:搞定代码重复的三个绝招
22 接口设计:系统间对话的语言,一定要统一
23 缓存设计:缓存可以锦上添花也可以落井下石
24 业务代码写完,就意味着生产就绪了?
25 异步处理好用,但非常容易用错
26 数据存储:NoSQL与RDBMS如何取长补短、相辅相成?

安全篇

27 数据源头:任何客户端的东西都不可信任
28 安全兜底:涉及钱时,必须考虑防刷、限量和防重
29 数据和代码:数据就是数据,代码就是代码
30 敏感数据:如何正确保存和传输敏感数据?

扩展

带你吃透课程中Java 8的那些重要知识点
分析定位Java问题,一定要用好这些工具