JVM文檔指出short是作爲int實現的,所以我想知道是否可以有任何好處來代替它。它可能會使用更少的內存或處理速度更快?對於限制<100的循環,使用'short'而不是'int'是明智嗎?
1
A
回答
2
這只是一個意見,但我會說這不是明智的。
- 你偏離標準大家都知道。人們突然需要考慮循環的正確性和意圖。這浪費了寶貴的開發時間,可能比幾個字節的內存更昂貴。
- 當某個點某人從100變爲更大的值時,它也會引入微妙的錯誤:編譯器不會抱怨,但是您可能會創建一個無限循環。
例如
for (short s = 0; s < Short.MAX_VALUE + 1; s++)
永遠不會停止,因爲s++
溢出默默,而在s < Short.MAX_VALUE + 1
s
提升爲int
。
使用小於int
的類型最適合用於需要2字節值的語義的情況&如何溢出,而不是試圖節省空間。
0
真的有不好的一面吧,看到這個前面回答一個類似的問題:
https://stackoverflow.com/a/14532302/5490728
它甚至有關的性能可能損失會談。
此外,正如zapl已經指出的那樣,協作者可能不會習慣它併產生錯誤。
(我讀過它應該可以將這個問題標記爲重複15個聲望,但是我在'flag'菜單中找不到該選項,我希望這種回答也可以。)
相關問題
- 1. 使用「dp」而不是其他的方法是明智的嗎?
- 2. 使用LINQ替換循環是明智的嗎?
- 3. 從BigInteger轉換爲int是明智嗎?
- 4. 在foreach循環中調用方法和嵌套循環是明智的嗎?
- 5. 我可以使用for循環而不是while循環嗎?
- 6. For循環,而限制是負數
- 7. 定義接受short int而不是int的函數的好處
- 8. 使用XCode 2.5而不是3.x/4.x是不明智的?
- 9. 使用匿名對象+動態是不明智的嗎?
- 10. SwingUtilities.invokeLater無限循環,而不是繼續?
- 11. C#循環從100到1而不是1到100
- 12. 如何在for循環中使用double而不是int?
- 13. 是否可以使用while循環而不是for循環?
- 14. 強制Java雙,而不是使用int
- 15. 內容明智而不是頁面明智的PDF比較庫
- 16. 是<short-name>是TLD中<taglib>的強制子元素嗎?
- 17. 使用for循環,而不是地圖
- 18. 使用reduce而不是for循環
- 19. 使用查詢而不是for循環
- 20. Xamarin Social存儲應用密鑰而不是服務器是明智的嗎?
- 21. 這會更好地使用循環而不是函數嗎?
- 22. 是否有意義使用std :: unordered_map <int, int>而不是std :: map <int, int>?
- 23. 對於SqlServer查找表,使用tinyint而不是int值得麻煩嗎?
- 24. 爲什麼InputStream read()返回一個int而不是一個short?
- 25. c# - 是SHORT數據類型還是INT?
- 26. 對於大型表數據集,使用Int PK而不是GUID
- 27. 如何使用while循環而不是foreach循環
- 28. 使用while循環,而不是爲循環
- 29. 這是一個無限循環嗎?
- 30. for(;;)這是一個無限循環嗎?
您閱讀的文檔是正確的。如果你不把它存儲在一個數組中,沒有意義。 –