到底那個效率高 初始化 垃圾收集或虛擬機器的問題 ?

2021-04-01 09:06:26 字數 672 閱讀 4661

我用j2sdk1.4 執行下面程式片斷:

//方式1:只定義乙個string物件引用;以後重用這個物件引用儲存資訊

long before = system.currenttimemillis();

string s;

for(int i=0;i<10000000;i++)

long after = system.currenttimemillis();

//執行後檢驗這種方法用時長,耗時是下一種方式的幾倍甚至10倍

system.out.println(after - before);  

//方式2:每次都重新初始化乙個string 物件引用

before = system.currenttimemillis();  

for(int i=0;i<10000000;i++)

after = system.currenttimemillis();

system.out.println(after - before);

感覺方式1耗時應該比方式2短,但執行結果與想象不符。

按照這篇文章

對string 物件初始化的說明,本例中的string物件全部使用string池中快取的物件「a」,這樣方式1與方式2在初始化時沒有區別; 但方式2維護了更多的區域性變數(即物件引用),反而速度更快,是何原因?請高手指點。

要想工作效率高,我們到底需要多少睡眠?

編者按 此文作者 leo widrich 是 buffer 的聯合創始人兼 cmo,他在文章中整理了關於睡眠的一些最新研究進展,給出了一些建議,希望能幫到那些總是睡不好的創業者和其他朋友們。人是鐵,飯是鋼,吃是真的剛需,但是你可知道平均算下來,一生花在睡覺上的時間有 24 年,比吃飯多了去了。睡是如...

類初始化和例項初始化以及方法的重寫(面試高頻考點)

考點 類初始化過程 例項初始化過程 方法的重寫 類初始化過程 1.乙個類要建立例項的時候,需要先載入並且初始化該類 mian方法所在的類需要先載入和初始化 2.乙個子類要初始化的時候,需要先初始化該子類的父類 3.乙個類初始化就是執行方法 方法是由靜態類變數顯示賦值 和靜態 塊組成的 靜態類變數顯示...

C 之 Vector(容器)初始化高維陣列

使用c 標準模版庫 stl 中的vector 向量 可以實現變長陣列,實現二維陣列,高維陣列。下面給出 實現。include include using namespace std int main 那麼用vector 向量 怎樣實現二維陣列呢,下面給出源程式 include include inc...