最近在使用阿里编码规约扫描代码(之前一个老的项目)时,发现代码里有很多使用 new Date().getTime() 来获取时间戳,而没有直接使用 System.currentTimeMillis() 来获取,实在是想不到为什么还会这样写,让我不仅想到,还是写一篇文章说明一下很有必要记录一下。
以下是阿里P3C扫描出来的代码:
其实为什么不推荐使用 new Date().getTime() 来获取时间戳,可以查看JDK源码,其中你会发现,在JDK源码中 new Date() 构造方法里还是调用的 System.currentTimeMillis() 来获取的。你再使用 new Date() 构建一个对象来获取时间戳,是多走了一步,这样效率就会降低(重新new一个Date对象,增加内存开销),虽然这个损耗的时间可以忽略不计,但是累积的多了,性能就会自然而然的下降。
完结!