• currentTimeMillis与 nanoTime


    时间单位换算

    1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒) 


    currentTimeMillisnanoTimejava.lang.System中提供的提供的两个方法。


    1、public static long currentTimeMillis();

    返回当前时间与1970.1.1 UTC 零点之间的时间差,以毫秒为单位。

    调用:System.currentTimeMillis(); 

    注意:当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。例如,许多操作系统以几十毫秒为单位测量时间。

    好处:可与Date很方便的进行转换。

    public class MainClass {
        public static void main(String[] args) {
            long l1 = System.currentTimeMillis();
            System.out.println(l1);// 1480490262340
            Date d = new Date(l1);
            System.out.println(d);// Wed Nov 30 15:17:42 CST 2016
            long l2 = d.getTime();
            System.out.println(l2);// 1480490262340
        }
    }

    缺点:在CPU速度越来越快的今天,1毫秒已经成了一个相对较长的时间段,用它来测量代码执行的时间时,结果可能不是很理想。

    Date的源代码中有构造器:

        public Date() {
            this(System.currentTimeMillis());
        }

    可知new Date()其实就是在调用System.currentTimeMillis(),且Date类中getTime()方法间接返回的就是System.currentTimeMillis()的值。

    2、public static long  nanoTime();

    在JDK5中增加的方法,返回系统计时器的当前值,以纳秒为单位;精确度是currentTimeMillis()的10^6倍

    调用:System.nanoTime(); 

    注意:此方法只能用于测量已过的时间,与系统或钟表时间的其他任何时间概念无关。nanoTime不能用来计算当前时间。

    计算代码执行时间代码:

    long s = System.nanoTime(); 
    .... 
    System.out.println(System.nanoTime() - s);

     

  • 相关阅读:
    BI之SSAS完整实战教程1 -- 开篇, BI简介 & SSAS简介
    MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航
    MVC5+EF6 入门完整教程12--灵活控制Action权限
    JVM垃圾收集
    JVM类加载
    前端UI框架
    前端学习
    JVM字节码
    网络编程
    Java NIO
  • 原文地址:https://www.cnblogs.com/SQP51312/p/6117766.html
Copyright © 2020-2023  润新知