目前獲取毫秒值大概有下面三種方法
Java代碼
//方法 一
System.currentTimeMillis();
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new
Date().getTime();
//方法 一
System.currentTimeMillis();
//方法 二
Calendar.getInstance().getTimeInMillis();
//方法 三
new Date().getTime();
最近做監(jiān)控系統(tǒng),發(fā)現(xiàn)代碼中有前兩種方法,然后突然有了一個想法,到底哪個更快呢?
然后做了如下實驗:
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千萬次,然后查看運行結(jié)果
Java代碼
187
7032
297
187
7032
297
結(jié)果發(fā)現(xiàn) System.currentTimeMillis() 這種方式速度最快
Calendar.getInstance().getTimeInMillis() 這種方式速度最慢,看看源碼會發(fā)現(xiàn),Canlendar因為要處理時區(qū)問題會耗費很多的時間。
所以建議多使用第一種方式。
另,System 類中有很多高效的方法,比如,arrayCopy 之類的
學(xué)習(xí)Java的同學(xué)注意了!!!
學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入Java學(xué)習(xí)交流群346942462,我們一起學(xué)Java!