java – arraylist与数组中原始类型的包装器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – arraylist与数组中原始类型的包装器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1236字,纯文字阅读大概需要2分钟。
内容图文
![java – arraylist与数组中原始类型的包装器](/upload/InfoBanner/zyjiaocheng/814/6b22e265aef349fc848e2ec712f78651.jpg)
在“核心java 1”我读过
CAUTION: An ArrayList is far
less efficient than an int[] array
because each value is separately
wrapped inside an object. You would
only want to use this construct for
small collections when programmer
convenience is more important than
efficiency.
但是在我的软件中,由于一些要求,我已经使用了Arraylist而不是普通的阵列,尽管“该软件应该具有高性能,在我阅读引用的文本后,我开始恐慌!”我可以改变的一件事是将双变量更改为Double以防止自动装箱,我不知道这是否值得,在下一个样本算法中
public void multiply(final double val)
{
final int rows = getSize1();
final int cols = getSize2();
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
this.get(i).set(j, this.get(i).get(j) * val);
}
}
}
我的问题是改变double到Double会有所不同吗?或者这是微观优化,不会影响任何事情?请记住,我可能正在使用大型矩阵.我应该考虑重新设计整个程序吗?
解决方法:
double与Double的最大问题是后者增加了一些内存开销 – 在Sun 32位JVM上每个对象8个字节,可能或多或少在其他JVM上.然后,您需要另外4个字节(64位JVM上的8个字节)来引用该对象.
因此,假设您有1,000,000个对象,差异如下:
double[1000000]
每个条目8个字节;总计= 8,000,000字节
Double[1000000]
每个对象实例16个字节每个引用4个字节;总计= 20,000,000字节
这是否重要在很大程度上取决于您的申请.除非你发现自己内存不足,否则假设没关系.
内容总结
以上是互联网集市为您收集整理的java – arraylist与数组中原始类型的包装器全部内容,希望文章能够帮你解决java – arraylist与数组中原始类型的包装器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。