Java 8 中 stream 效率如何?

Stream 操作较 for 循环更简洁直观,并提供了更多的 API 供过滤、归并等操作。传统 for 循环在数据量较小的情况下效率与 stream 差别不大。多核 CPU 下, parallelStream 效率更高。

Lombok 设置默认值

字段赋值时,如果将某字段赋值为 null ,则接口返回时整个字段都丢失,与接口定义矛盾。前端建议增加默认值。

  1. @Builder.Default 注解添加在需要设置默认值的属性上
  2. 给属性赋值,赋值内容为需要设定的默认值
  3. 使用 lombok.Builder 创建对象

InterruptedException 应该如何处理?

  1. Thread.interrupt()方法和InterruptedException异常的关系
  2. Thread.interrupt() 后线程是什么状态
  3. interrupt用途?unBlock操作,支持任务cancel, 数据清理
  4. 通过 Runtime.getRuntime().addShutdownHook 添加线程池清理工作
  5. 线程池 shutdown 和 shutdownNow 区别? shutdown 方法确保无新任务提交,进行中的任务会继续执行。
  6. awaitTermination 与 shutdown 方法配合使用

后续了解

  1. Lombok 逐步淘汰
  2. Stream 底层实现,多线程如何实现