java - 有什么理由只为 1 个元素创建一个数组吗?
问题描述
我刚刚找到了这个代码片段,想知道是否有任何特定原因将该值存储在双1数组中,而不仅仅是“普通”双变量?
double[] potentialEnergy = new double[1];
if (potentialEnergy[0] != 0.0)
throw new RuntimeException();
此外,实际上是否有任何情况下 double 的初始值不是 0.0,所以您需要专门检查一下?
对于上下文:我最近开始阅读有关图形可视化的内容,并偶然发现了kamada /kawai 力导向算法的实现源代码。在那里,从第 311 行开始,我找到了那 3 行代码,但没有找到任何理由让它成为一个数组:
解决方案
有什么理由只为 1 个元素创建一个数组吗?
是的:如果您将它传递给一个方法,该方法将通过将其放入数组中来提供一个值(而不是通过返回它来提供一个值,可能是因为它返回了一些其他值)。
概括一下:如果您将它提供给需要一个数组的 API,即使它只是一个单元素数组。
此外,实际上是否有任何情况下 double 的初始值不是 0.0,所以您需要专门检查一下?
不,一个新分配的数组包含所有位都关闭的元素(当它是一个double
数组[或任何其他数值类型的数组,包括char
]、false
对于 的数组boolean
和null
引用类型的数组时,这些元素为零)。
推荐阅读
- google-sheets - 如何根据单独列中的日期获取某物的价格?
- ingres - Ingres存储过程从表中删除多条记录
- spring - @Cacheable#cacheNames 和 Redis 没有关系吗?
- kdb - kdb 中的并行处理
- c++ - 检查 ISO 8601 日期格式是否有效
- abap - 将结构附加到标准表或创建 Z 表?
- javascript - Enzyme 不会检测来自 React Native Elements 的组件
- arrays - 使用 paste() R 将数组的页面替换为另一个页面
- angular - 我收到错误:存储库不干净。请在更新前提交或存储任何更改
- gem5 - scons:建筑因错误而终止