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(;;)这是一个无限循环吗?
您阅读的文档是正确的。如果你不把它存储在一个数组中,没有意义。 –