技巧 1:拼接字符串别再用 "+" 了!
String url = "a="+a+"&b="+b; → 又丑又易错!
String.format("a=%s&b=%s", a, b); → 一行搞定,清晰如白话!
- 注意:循环拼接用 StringBuilder,速度更快!
技巧 2:IO 流操作提速秘籍
- 新手踩坑:逐字节读写文件 → 慢如蜗牛!
- 高手操作:
BufferedInputStream bis = new BufferedInputStream(fis); byte[] buffer = new byte[1024]; // 批量读写!
技巧 3:消灭嵌套循环
for (User user : users) { for (Role role : roles) { /* 比对 */ } }
Map<Long, Role> roleMap = roles.stream().collect(Collectors.toMap(Role::getId, r -> r)); users.forEach(user -> user.setRole(roleMap.get(user.getRoleId())));
技巧 4:线程池创建禁忌
Executors.newCachedThreadPool() → 可能导致线程数爆炸!
new ThreadPoolExecutor(8, 10, 60s, new ArrayBlockingQueue<>(500));
技巧 5:BigDecimal 防坑指南
new BigDecimal(0.1) → 精度丢失!
BigDecimal.valueOf(0.1); // 或 new BigDecimal("0.1")
技巧 6:死循环预防术
void printCategory(Category cat) { printCategory(cat.getParent()); // 无限递归警告! }
void printCategory(Category cat, int depth) { if (depth > 5) return; // 设置深度阈值! }
技巧 7:集合初始化黑科技
List list = new ArrayList(); → 默认大小 10,疯狂扩容!
new ArrayList<>(100000); // 指定初始容量
附赠避坑彩蛋
- Arrays.asList() 转换的集合不能增删!
- foreach 循环中 remove 元素 → 用 Iterator.remove()!
- SimpleDateFormat 线程不安全 → 改用 ThreadLocal 或 DateTimeFormatter!

本文暂时没有评论,来添加一个吧(●'◡'●)