This commit is contained in:
V-LiuShuang
2026-07-31 16:36:45 +08:00
parent 13699380d6
commit a66c4f9194

View File

@@ -15,7 +15,7 @@
- 对于null处理优先使用Optional而不是if优先使用Stream而不是循环。 - 对于null处理优先使用Optional而不是if优先使用Stream而不是循环。
- 如果Stream的map代码块超过5行就单独写一个函数如果map中代码块需要中间对象优先使用记录类记录类和DTO存放在一起。 - 如果Stream的map代码块超过5行就单独写一个函数如果map中代码块需要中间对象优先使用记录类记录类和DTO存放在一起。
- 构建JavaBean对象优先使用构造函数而不是单独写工具类或方法只有3个以内的属性应提供一个全部参数的构造函数。 - 构建JavaBean对象优先使用构造函数而不是单独写工具类或方法只有3个以内的属性应提供一个全部参数的构造函数。
- List在非多线程场景默认用ArrayList就够了。只有需要按照插入顺序遍历元素的场景才考虑使用LinkedList。需考虑线程安全用CopyOnWriteArrayList。或者等。 - List在非多线程场景默认用ArrayList就够了。只有需要按照插入顺序遍历元素的场景才考虑使用LinkedList。需考虑线程安全用CopyOnWriteArrayList。
- Set在非多线程场景默认用HashSet。对排序要求考虑用LinkedHashSet或TreeSet。需考虑线程安全用`cn.hutool.core.collection.ConcurrentHashSet`、ConcurrentSkipListSet、CopyOnWriteArraySet等。 - Set在非多线程场景默认用HashSet。对排序要求考虑用LinkedHashSet或TreeSet。需考虑线程安全用`cn.hutool.core.collection.ConcurrentHashSet`、ConcurrentSkipListSet、CopyOnWriteArraySet等。
- Map在非线程场景默认使用HashMap就够了。对排序要求考虑用LinkedHashMap或TreeMap。如果存在并发场景需考虑线程安全用ConcurrentHashMap或ConcurrentSkipListMap等JUC工具包。 - Map在非线程场景默认使用HashMap就够了。对排序要求考虑用LinkedHashMap或TreeMap。如果存在并发场景需考虑线程安全用ConcurrentHashMap或ConcurrentSkipListMap等JUC工具包。
- Queue的使用原则要控制内存用ArrayBlockingQueue。经典生产者消费者用LinkedBlockingQueue。要窃取任务用LinkedBlockingDeque。追求极致吞吐且不怕队列暴涨用ConcurrentLinkedQueue。必须双端且高吞吐用ConcurrentLinkedDeque。 - Queue的使用原则要控制内存用ArrayBlockingQueue。经典生产者消费者用LinkedBlockingQueue。要窃取任务用LinkedBlockingDeque。追求极致吞吐且不怕队列暴涨用ConcurrentLinkedQueue。必须双端且高吞吐用ConcurrentLinkedDeque。