Java使用System.currentTimeMillis()方法計算程序運行時間的示例代碼
Java 中提供的 System.currentTimeMillis() 方法用于獲取當(dāng)前的計算機時間,時間的表達格式為當(dāng)前計算機時間和 GMT 時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數(shù)。
System.currentTimeMillis() 方法的返回類型為 long ,表示毫秒為單位的當(dāng)前時間。
在開發(fā)過程中,通常很多人都習(xí)慣使用 new Date() 來獲取當(dāng)前時間。new Date() 所做的事情其實就是調(diào)用了 System.currentTimeMillis()方法。如果僅僅是需要或者毫秒數(shù),那么完全可以使用 System.currentTimeMillis() 去代替 new Date(),效率上會高一點。
【示例】計算 String 類型與 StringBuilder 類型拼接字符串的耗時情況。
/**
* Java使用System.currentTimeMillis()方法計算程序運行時間
* @author pan_junbiao
**/
public class CurrentTimeTest
{
/**
* 使用String類型拼接字符串耗時
*/
public static void testString()
{
String s = "Hello";
String s1 = "World";
long start = System.currentTimeMillis();
for(int i=0; i<10000; i++)
{
s+=s1;
}
long end = System.currentTimeMillis();
long runTime = (end - start);
System.out.println("使用String類型拼接字符串耗時:" + runTime + "毫秒");
}
/**
* 使用StringBuilder類型拼接字符串耗時
*/
public static void testStringBuilder()
{
StringBuilder s = new StringBuilder("Hello");
String s1 = "World";
long start = System.currentTimeMillis();
for(int i=0; i<10000; i++)
{
s.append(s1);
}
long end = System.currentTimeMillis();
long runTime = (end - start);
System.out.println("使用StringBuilder類型拼接字符串耗時:" + runTime + "毫秒");
}
public static void main(String[] args)
{
testString();
testStringBuilder();
}
}運行結(jié)果:

知識點補充:
從上圖的運行結(jié)果可以看出,在拼接字符串過程中,使用 StringBuilder 對象,而不使用 String 對象。這是因為 String 是不可變的對象,在每一次改變字符串時都會創(chuàng)建一個新的 String 對象;而 StringBuilder 則是可變的字符序列,類似于 String 的字符串緩沖區(qū)。所以,在字符串經(jīng)常修改的地方使用 StringBuilder ,其效率將高于 String。
在這方面運行速度快慢為:StringBuilder > StringBuffer > String。
線程安全上,StringBuilder 是線程不安全的,而 StringBuffer 是線程安全的。
到此這篇關(guān)于Java使用System.currentTimeMillis()方法計算程序運行時間的文章就介紹到這了,更多相關(guān)Java計算程序運行時間內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot中l(wèi)ombok的安裝與使用詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot中l(wèi)ombok安裝與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Java實現(xiàn)將列表數(shù)據(jù)導(dǎo)出為PDF文件并添加水印
這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)把列表數(shù)據(jù)導(dǎo)出為PDF文件,同時加上PDF水印,文中的示例代碼講解詳細,需要的可以參考下2024-02-02
Java實現(xiàn)post請求詳細代碼(帶有參數(shù))
這篇文章主要給大家介紹了關(guān)于Java實現(xiàn)帶有參數(shù)post請求的相關(guān)資料,文中通過代碼示例介紹的非常詳細,對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-08-08
如何在IDEA上安裝scala插件并創(chuàng)建工程(圖文教程)
這篇文章主要介紹了一文教你如何在IDEA上安裝scala插件并創(chuàng)建工程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07
Springboot整合freemarker和相應(yīng)的語法詳解
FreeMarker是一款Spring官方推薦使用的模板引擎。接下來通過本文給大家介紹Springboot整合freemarker和相應(yīng)的語法,感興趣的朋友一起看看吧2021-09-09
詳解如何為SpringBoot項目中的自定義配置添加IDE支持
這篇文章主要介紹了詳解如何為SpringBoot項目中的自定義配置添加IDE支持,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Spring Boot自定義配置屬性源(PropertySource)
這篇文章主要介紹了Spring Boot自定義配置屬性源(PropertySource),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06

