欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中獲取時(shí)間戳的三種方式對(duì)比實(shí)現(xiàn)

 更新時(shí)間:2021年01月18日 17:04:37   作者:cHAngXdoN  
這篇文章主要介紹了Java中獲取時(shí)間戳的三種方式對(duì)比實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

Java中獲取時(shí)間戳 三種方式對(duì)比

最近項(xiàng)目開(kāi)發(fā)過(guò)程中發(fā)現(xiàn)了項(xiàng)目中獲取時(shí)間戳的業(yè)務(wù)。而獲取時(shí)間戳有以下三種方式,首先先聲明推薦使用System類(lèi)來(lái)獲取時(shí)間戳,下面一起看一看三種方式。

1.System.currentTimeMillis()

System類(lèi)中的currentTimeMillis()方法是三種方式中效率最好的,運(yùn)行時(shí)間最短。開(kāi)發(fā)中如果設(shè)計(jì)到效率問(wèn)題,推薦使用此種方式獲取。

System.currentTimeMillis()

2.new Date().getTime()

除了System類(lèi),使用量很大的應(yīng)該就是Date類(lèi)了,包括我也一樣開(kāi)發(fā)中如果涉及到日期的首先會(huì)想到Date,但date類(lèi)中獲取時(shí)間戳并不是最有效率的,翻看他的源碼:
無(wú)參構(gòu)造如下👇

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

從源碼可以看出,new Date()其實(shí)就是調(diào)用了System.currentTimeMillis(),再傳入自己的有參構(gòu)造函數(shù)。不難看出,如果只是僅僅獲取時(shí)間戳,即使是匿名的new Date()對(duì)象也會(huì)有些許的性能消耗, 從提升性能的角度來(lái)看,只是僅僅獲取時(shí)間戳,不考慮時(shí)區(qū)的影響(時(shí)區(qū)為什么會(huì)有影響看下一段),直接調(diào)用System.currentTimeMillis()會(huì)更好一些。

3.Calendar.getInstance().getTimeInMillis()

這種方式其實(shí)是速度最慢,看其源碼就會(huì)發(fā)現(xiàn),Canlendar是區(qū)分時(shí)區(qū)的,因?yàn)橐幚頃r(shí)區(qū)問(wèn)題會(huì)耗費(fèi)很多的時(shí)間。

附測(cè)試如下:

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(); 
    } 
     
  }  
} 

效果如下

187 
7032 
297

Calendar.getInstance().getTimeInMillis() 這種方式速度最慢,這是因?yàn)镃anlendar要處理時(shí)區(qū)問(wèn)題會(huì)耗費(fèi)較多的時(shí)間。

到此這篇關(guān)于Java中獲取時(shí)間戳的三種方式對(duì)比實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java 獲取時(shí)間戳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot熱部署和整合Mybatis的過(guò)程

    SpringBoot熱部署和整合Mybatis的過(guò)程

    熱部署,就是在應(yīng)用正在運(yùn)行的時(shí)候升級(jí)軟件,卻不需要重新啟動(dòng)應(yīng)用,本文給大家詳細(xì)介紹SpringBoot熱部署和整合Mybatis的過(guò)程,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Web容器啟動(dòng)過(guò)程中如何執(zhí)行Java類(lèi)

    Web容器啟動(dòng)過(guò)程中如何執(zhí)行Java類(lèi)

    這篇文章主要介紹了Web容器啟動(dòng)過(guò)程中如何執(zhí)行Java類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot密碼加密的實(shí)現(xiàn)示例

    SpringBoot密碼加密的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot密碼加密的實(shí)現(xiàn)示例,包括引入依賴(lài)、配置加密工具、生成加密密鑰、加密密碼、配置解密,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-08-08
  • java 通過(guò)發(fā)送json,post請(qǐng)求,返回json數(shù)據(jù)的方法

    java 通過(guò)發(fā)送json,post請(qǐng)求,返回json數(shù)據(jù)的方法

    下面小編就為大家分享一篇java 通過(guò)發(fā)送json,post請(qǐng)求,返回json數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • Java Lambda表達(dá)式原理及多線程實(shí)現(xiàn)

    Java Lambda表達(dá)式原理及多線程實(shí)現(xiàn)

    這篇文章主要介紹了Java Lambda表達(dá)式原理及多線程實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • idea中java及java web項(xiàng)目的常見(jiàn)問(wèn)題及解決

    idea中java及java web項(xiàng)目的常見(jiàn)問(wèn)題及解決

    在IDEA中處理亂碼問(wèn)題主要涉及四個(gè)方面:文件編碼設(shè)置為UTF-8、編輯器默認(rèn)編碼調(diào)整、Tomcat運(yùn)行配置編碼設(shè)置以及解決cmd中的亂碼,此外,詳細(xì)介紹了在IDEA中創(chuàng)建Web項(xiàng)目的步驟,包括新建Java工程、添加Web框架支持、添加Tomcat依賴(lài)庫(kù)
    2024-09-09
  • springboot2.X整合prometheus監(jiān)控的實(shí)例講解

    springboot2.X整合prometheus監(jiān)控的實(shí)例講解

    這篇文章主要介紹了springboot2.X整合prometheus監(jiān)控的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • Java maven三種倉(cāng)庫(kù),本地倉(cāng)庫(kù),私服,中央倉(cāng)庫(kù)的配置

    Java maven三種倉(cāng)庫(kù),本地倉(cāng)庫(kù),私服,中央倉(cāng)庫(kù)的配置

    今天給大家簡(jiǎn)單介紹Maven三種倉(cāng)庫(kù)的配置,文中有非常詳細(xì)的解釋,對(duì)Java初學(xué)者很有幫助喲,需要的朋友可以參考下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • Java基礎(chǔ)鞏固抽象類(lèi)與接口詳解

    Java基礎(chǔ)鞏固抽象類(lèi)與接口詳解

    在類(lèi)中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類(lèi)稱(chēng)為抽象類(lèi),接口是Java中最重要的概念之一,它可以被理解為一種特殊的類(lèi),不同的是接口的成員沒(méi)有執(zhí)行體,是由全局常量和公共的抽象方法所組成,本文給大家介紹Java抽象類(lèi)和接口,感興趣的朋友一起看看吧
    2022-05-05
  • 劍指Offer之Java算法習(xí)題精講二叉樹(shù)專(zhuān)題篇上

    劍指Offer之Java算法習(xí)題精講二叉樹(shù)專(zhuān)題篇上

    跟著思路走,之后從簡(jiǎn)單題入手,反復(fù)去看,做過(guò)之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化
    2022-03-03

最新評(píng)論