[英]What is more expensive? Assignment or declaration?
只是一個簡單的問題,在Java中什么會更昂貴?
double test = 5;
double test1 = 5;
要么
double test = 5;
double test1 = test;
都不行 Java有一個非常好的優化器,它將在此示例中生成完全相同的代碼。
編譯器查看賦值double test1 = test;
並可以得出結論,此時test
是一個等於5
的常數,可以完全優化分配。
這也是為什么您不必害怕擴展數值的原因。
int timeout = 60 * 60 * 2 // 2 hours in seconds
完全不說,這是微優化的一種情況,它永遠不會返回任何值得注意的東西。 擔心網絡連接會延遲幾秒鍾。
兩者之間的差異應忽略不計。 我想常量會稍微快一點,因為沒有加載測試的值,但是實際上...值得您花時間去擔心它。 可讀性比您可能節省的一兩個周期重要得多。
我的第一個沖動就是說,編寫一個小的循環程序並對其進行測試。 但是,可能比這更復雜。
編寫代碼后,Java可以完成各種優化工作,而這正是他們關注的工作。 因此,這使回答變得更加困難,並且可能取決於特定的JRE和代碼。
雖然我知道這是一個有趣的學術問題,但實際上,答案可能是“無關緊要”,而您代碼的其他部分通常會更多地成為瓶頸。
對於您的特定示例,我覺得“ 5”可能是一種特殊情況,其中有一個靜態整數系統池,我知道它們使用字符串來實現。 有人知道嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.