• [System.currentTimeMillis]/[Calendar.getInstance().getTimeInMillis()]/[new Date().getTime()]


    欢迎和大家交流技术相关问题:
    邮箱: jiangxinnju@163.com
    博客园地址: http://www.cnblogs.com/jiangxinnju
    GitHub地址: https://github.com/jiangxincode
    知乎地址: https://www.zhihu.com/people/jiangxinnju

    在Java中,生成当前的时间戳大致上有这么几种方法,分别是:

    • System.currentTimeMillis(),它属于java.lang.System

    • Calendar.getInstance().getTimeInMillis(),它属于java.util.Calendar

    • new Date().getTime(),它属于java.util.Date;

    他们都是返回从1970/1/1返回到现在所经过的毫秒数,从实现上来看new Date().getTime()也是依据System.currentTimeMillis()

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

    单从性能方面考虑,优先使用System.currentTimeMillis(),采用如下方式比较性能,输入结果为:

    System.currentTimeMillis(): 477
    Calendar.getInstance().getTimeInMillis(): 16415
    new Date().getTime(): 433

    		startTime = System.currentTimeMillis();
    		for (int i = 0; i < times; i++) {
    			System.currentTimeMillis();
    		}
    		endTime = System.currentTimeMillis();
    		System.out.println("System.currentTimeMillis(): " + (endTime - startTime));
    		
    		startTime = System.currentTimeMillis();
    		for (int i = 0; i < times; i++) {
    			Calendar.getInstance().getTimeInMillis();
    		}
    		endTime = System.currentTimeMillis();
    		System.out.println("Calendar.getInstance().getTimeInMillis(): " + (endTime - startTime));
    		
    		startTime = System.currentTimeMillis();
    		for (int i = 0; i < times; i++) {
    			new Date().getTime();
    		}
    		endTime = System.currentTimeMillis();
    		System.out.println("new Date().getTime(): " + (endTime - startTime));
    
  • 相关阅读:
    java内存回收机制
    scala学习
    [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
    linux 进程的创建
    linux中的进程和线程
    linux 文件系统
    gdb 调试程序
    makefile
    linux下的gcc编译器
    socket 网络编程
  • 原文地址:https://www.cnblogs.com/jiangxinnju/p/9425411.html
Copyright © 2020-2023  润新知