Monthly Archives: 11 月 2017

[笔记] Java 异常相关

By | 12 11 月, 2017

Java 异常层次结构

Error 类的异常为 Java 运行时的系统内部错误导致,如果发生了这种异常,能通知给用户做做善后工作就已经不错了,也无力回天。所以这种异常在开发时基本是无需关心,也不能抛出的。
Exception 分支下的 RuntimeException 和 IOException 是按两种规则来划分的:

  • 由程序错误导致的异常属于 RuntimeException,像错误的类型转换、数组越界、空指针之类的
  • 程序本身没有问题,但由于像

[笔记] Java 并发相关

By | 12 11 月, 2017

线程局部变量

当某个 class 不是线程安全的时候,那么可以通过 ThreadLocal 辅助类来让每个线程都构造自己的这个 class 的实例。
比如 SimpleDateFormat 不是线程安全的,那么可以使用如下方式:

public static final ThreadLocal dateFormat =
ThreadLocal.withInitial(() -> new SimpleDateFormat("yyyy-MM-dd"));