JAVA获取时间戳,哪个更快
来源:互联网 发布:excel抓取多页网页数据 编辑:程序博客网 时间:2024/06/10 00:09
目前获取毫秒值大概有下面三种方法
- //方法 一
- System.currentTimeMillis();
- //方法 二
- Calendar.getInstance().getTimeInMillis();
- //方法 三
- new Date().getTime();
最近做监控系统,发现代码中有前两种方法,然后突然有了一个想法,到底哪个更快呢?
然后做了如下实验:
- import java.util.Calendar;
- import java.util.Date;
- public class TimeTest {
- private static long _TEN_THOUSAND=10000;
- public static void main(String[] args) {
- long times=1000*_TEN_THOUSAND;
- long t1=System.currentTimeMillis();
- testSystem(times);
- long t2=System.currentTimeMillis();
- System.out.println(t2-t1);
- testCalander(times);
- long t3=System.currentTimeMillis();
- System.out.println(t3-t2);
- testDate(times);
- long t4=System.currentTimeMillis();
- System.out.println(t4-t3);
- }
- public static void testSystem(long times){//use 188
- for(int i=0;i<times;i++){
- long currentTime=System.currentTimeMillis();
- }
- }
- public static void testCalander(long times){//use 6299
- for(int i=0;i<times;i++){
- long currentTime=Calendar.getInstance().getTimeInMillis();
- }
- }
- public static void testDate(long times){
- for(int i=0;i<times;i++){
- long currentTime=new Date().getTime();
- }
- }
- }
因为很简单我就不加注释了,每种方法都运行1千万次,然后查看运行结果
- 187
- 7032
- 297
结果发现 System.currentTimeMillis() 这种方式速度最快
Calendar.getInstance().getTimeInMillis() 这种方式速度最慢,看看源码会发现,Canlendar因为要处理时区问题会耗费很多的时间。
所以建议多使用第一种方式。
另,System 类中有很多高效的方法,比如,arrayCopy 之类的
0 0
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快
- 转载:JAVA获取时间戳,哪个更快
- JAVA获取时间戳,哪个更快<转>
- Java和C语言哪个更快?
- 关于Java和C++哪个更快的问题
- java中int与short哪个速度更快?
- 哪个更快:Java堆还是本地内存
- java堆和内存的区别,哪个更快?
- 哪个更快:Java堆还是本地内存
- 哪个更快:Java堆还是本地内存
- (LeetCode) Ugly Number --- 丑数字
- 购物车小球的实现
- this指针总结
- cocos2dx-lua_修改源码流程
- webpack基础实践1
- JAVA获取时间戳,哪个更快
- mysql group by
- webpack基础实践2
- ubuntu 双击打不开软件或者创建的快捷方式
- 针对eclipse安装spring插件安装失败或者后不显示spring文件或者的解决办法
- webpack项目实践
- android 之横屏模式产生的oncreate 两次调用解决方案
- 何为栈? Stack 基础理解
- WebRTC1-原理探究