• JAVA获取时间戳,哪个更快


    目前获取毫秒值大概有下面三种方法

    //方法 一  
    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 之类的

  • 相关阅读:
    ZEat
    BingWallpaper
    ZBreak
    C语言块内变量回收问题
    Android 隐藏RadoiButton左边按钮
    php文件管理与基础功能的实现
    Ajax写分页查询(实现不刷新页面)
    jquery写日期选择器
    ajax三级联动下拉菜单
    ajax bookstrap美化网页,并实现页面的加载,删除与查看详情
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/5915113.html
Copyright © 2020-2023  润新知