SimpleDateFormat不要定义为static

简介: SimpleDateFormat不要定义为static

SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量,如果定义为static,必须加锁,或者使用 DateUtils 工具类

正例:注意线程安全,使用 DateUtils。亦推荐如下处理:

private static final ThreadLocal<DateFormat> df = new ThreadLocal<DateFormat>() { 
  @Override 
  protected DateFormat initialValue() { 
    return new SimpleDateFormat("yyyy-MM-dd"); 
  } 
};

说明:如果是 JDK8 的应用,可以使用 Instant 代替 DateLocalDateTime 代替 CalendarDateTimeFormatter 代替 SimpleDateFormat,官方给出的解释:simple beautiful strong immutable thread-safe。

相关文章
|
自然语言处理 安全 Java
Java SimpleDateFormat不可设置为static final
Java SimpleDateFormat不可设置为static final
166 0
|
Java 调度 C++
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)
内部类 成员内部类 成员内部类就是定义在一个类的内部,其实是相当于成员变量的位置。 下面这两种其实都可以被称为成员内部类的,只不过一般static修饰的这种我们一般也可以称之为静态内部类。我们先来研究成员内部类(也可以称之为非静态内部类)怎么定义的话合理即可,明白意思就可以了。
353 0
java内部类以及为什么要用public static void修饰main()函数,String args[]是什么?(浅显的一些探索)
|
存储 Cloud Native 编译器
C++ static与类
C++ static与类
|
存储 Java 编译器
Java-关于main函数的修饰符(为什么要带public和static)
关于Java主函数的修饰符(为什么要带public和static) public修饰符 public是函数的权限,决定了该函数是否可以被外部的函数调用
|
Java 数据库连接 数据库
util工具类中的方法为什么要用static修饰?
关于static学习的次数真的很多,每次搞得好像似懂非懂,这次就来一次深刻认识
234 0
JAVA中static、final、static final的区别
JAVA中static、final、static final的区别
144 0
|
Java
java的main函数为什么是public static void main(String[] args)
这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重 1. why “public”    因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 2.why “static”    在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以。而main函数作为程序的入口,需要在其它函数实例化之前就启动,这也就是为什么
1365 0
|
存储 Java 程序员
Java中的public static void main(String[] args)
public static void main(String[] args) //public 关键字意指这是一个可由外部调用的方法,main()方法的参数是一个String对象的数组。
1062 0
|
存储 Oracle 安全
你知道Java中final和static修饰的变量是在什么时候赋值的吗?
你知道Java中final和static修饰的变量是在什么时候赋值的吗?
544 0
|
Java
Java 权限修饰符(private、protected、public、默认、final、static)
Java 权限修饰符(private、protected、public、默认、final、static)
264 0

热门文章

最新文章