Tag Archives: Java

[笔记] Java 并发 – 基础构建模块

By | 7月 16, 2018

同步容器类

同步容器类包括 Vector / Hashtable / … 这些同步的封装器类是由 Collections.synchronizedXxx 等工厂方法创建的。
这些类实现线程安全的方式是:把它们的状态封装起来,并对每个公有方法都进行同步,使得每次只有一个线程能访问容器的状态。

同步容器类的问题

同步容器类都是线程安全的,也就是说直接调用暴露的公共方法都是没有任何安全问题的。但问题出在复合操作上,常见的比如:…

[笔记] Java 异常相关

By | 11月 12, 2017

Java 异常层次结构

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

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

[笔记] Java 并发相关

By | 11月 12, 2017

线程局部变量

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

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