(以下摘自阿里巴巴Java开发手册)
1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。
说明:资源驱动类、工具类、单例工厂类都需要注意。
5. 【强制】SimpleDateFormat 是线程不安全的类,一般不要定义为static变量,如果定义为
static,必须加锁,或者使用DateUtils工具类。
正例:注意线程安全,使用DateUtils。亦推荐如下处理:
private static final ThreadLocal df = new ThreadLocal() {
@Override
protected DateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd");
}
};
说明:如果是JDK8 的应用,可以使用Instant代替Date,LocalDateTime代替Calendar,
DateTimeFormatter代替Simpledateformatter,官方给出的解释:simple beautifulstrong
immutable thread-safe。