【Java用法】请使用System.currentTimeMillis()代替new Date().getTime()

简介: 【Java用法】请使用System.currentTimeMillis()代替new Date().getTime()

最近在使用阿里编码规约扫描代码(之前一个老的项目)时,发现代码里有很多使用 new Date().getTime() 来获取时间戳,而没有直接使用 System.currentTimeMillis() 来获取,实在是想不到为什么还会这样写,让我不仅想到,还是写一篇文章说明一下很有必要记录一下。

以下是阿里P3C扫描出来的代码:

其实为什么不推荐使用 new Date().getTime() 来获取时间戳,可以查看JDK源码,其中你会发现,在JDK源码中 new Date() 构造方法里还是调用的 System.currentTimeMillis() 来获取的。你再使用 new Date() 构建一个对象来获取时间戳,是多走了一步,这样效率就会降低(重新new一个Date对象,增加内存开销),虽然这个损耗的时间可以忽略不计,但是累积的多了,性能就会自然而然的下降。

 

完结!

 


相关文章
|
23天前
|
Java
【Java基础面试三十二】、new String(“abc“) 是去了哪里,仅仅是在堆里面吗?
这篇文章解释了Java中使用`new String("abc")`时,JVM会将字符串直接量"abc"存入常量池,并在堆内存中创建一个新的String对象,该对象会指向常量池中的字符串直接量。
|
2月前
|
Java
Java中的equals()与==的区别与用法
【7月更文挑战第28天】
52 12
|
8天前
|
Java API 调度
掌握Java线程状态:从NEW到TERMINATED
本文探讨了操作系统与Java中线程的状态及其转换。操作系统层面,线程状态包括初始、就绪、运行、阻塞和终止。Java线程状态则细分为NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,并详细介绍了各状态的特性和转换条件。此外,还列举了Java中常用的线程方法,如`wait()`、`notify()`、`start()`和`join()`等,帮助理解线程控制机制。
掌握Java线程状态:从NEW到TERMINATED
|
8天前
|
Java API
java date 增加10s后的时间
在 Java 中,要将 `Date` 对象增加 10 秒,可以通过 `Calendar` 类(适用于 Java 8 之前)或 `java.time` 包中的 `LocalDateTime`、`ZonedDateTime` 和 `Instant` 类(Java 8 及以上)实现。使用 `Calendar` 类时,需设置并修改 `Calendar` 实例。而在 `java.time` 包中,可以使用 `plus` 方法结合 `ChronoUnit.SECONDS` 来增加秒数。具体选择取决于是否需要处理时区以及 Java 版本。
|
21天前
|
Java 数据处理
Java IO 接口(Input)究竟隐藏着怎样的神秘用法?快来一探究竟,解锁高效编程新境界!
【8月更文挑战第22天】Java的输入输出(IO)操作至关重要,它支持从多种来源读取数据,如文件、网络等。常用输入流包括`FileInputStream`,适用于按字节读取文件;结合`BufferedInputStream`可提升读取效率。此外,通过`Socket`和相关输入流,还能实现网络数据读取。合理选用这些流能有效支持程序的数据处理需求。
23 2
|
23天前
|
Java
【Java基础面试二十八】、使用字符串时,new和““推荐使用哪种方式?
这篇文章讨论了在Java中使用字符串时,推荐使用双引号`""`直接量方式而不是使用`new`操作符,因为`new`会在常量池之外额外创建一个对象,导致更多的内存占用。
|
2月前
|
Java
java中return,break以及continue的用法
java中return,break以及continue的用法
34 10
|
2月前
|
Java 编译器 数据库连接
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
Java面试题:什么是Java中的注解以及如何自定义注解?举例说明注解的经典用法
41 0
|
3月前
|
Java
深入理解 Java 8 函数式接口:定义、用法与示例详解
深入理解 Java 8 函数式接口:定义、用法与示例详解
174 2
|
3月前
|
Java
Java 中 MessageFormat.format 用法
Java 中 MessageFormat.format 用法
31 1