目前獲取毫秒值大概有下面三種方法
Java代碼
//方法 一
System.currentTimeMillis();
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new
Date().getTime();
//方法 一
System.currentTimeMillis();
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new Date().getTime();
最近做監(jiān)控系統,發(fā)現代碼中有前兩種方法锈津,然后突然有了一個想法颖侄,到底哪個更快呢就斤?
然后做了如下實驗:
Java代碼
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
long currentTime=System.currentTimeMillis();
}
}
public static void
testCalander(long times){
//use 6299
for(int i=0;i
long currentTime=Calendar.getInstance().getTimeInMillis();
}
}
public static void testDate(long times){
for(int i=0;i
long currentTime=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
因為很簡單我就不加注釋了工三,每種方法都運行1千萬次梯澜,然后查看運行結果
Java代碼
187
7032
297
187
7032
297
結果發(fā)現 System.currentTimeMillis() 這種方式速度最快
Calendar.getInstance().getTimeInMillis() 這種方式速度最慢,看看源碼會發(fā)現婿失,Canlendar因為要處理時區(qū)問題會耗費很多的時間享幽。
所以建議多使用第一種方式浆竭。
另浸须,System 類中有很多高效的方法,比如邦泄,arrayCopy 之類的
學習Java的同學注意了I局稀!顺囊!
學習過程中遇到什么問題或者想獲取學習資源的話肌索,歡迎加入Java學習交流群346942462,我們一起學Java特碳!