如何解决如何统计装箱和拆箱操作的次数
int length = 1000000000;
Integer sum1 = 0;
for (Integer i = 0; i < length; i++) {
sum1 = sum1 + 1;
}
System.out.println(sum1);
拳击:
-
i++
盒i + 1
到Integer
-
sum1 + 1
被装箱为整数
开箱:
-
i < length
将i
拆箱到int
我上面的说法正确吗?以及如何以编程方式计算装箱和拆箱操作的数量?
解决方法
如果 sum1 总是加 1 并且在程序开始时总是零,那么 sum1 实际上是用 sum1 执行的装箱操作的次数。 sum1 上的操作更短:
--> sum1=sum1+1;-->sum1+=1-->sum1++;
所以如果sum1是用sum1执行的装箱操作的次数,那么我们可以假设用i++对i 实际上是 i。 For 循环总是检查条件
i
,所以我们知道它会检查这个长度次。您可能认为它会迭代 lenth-1 次,但实际上它会检查并保持最后,而不是完整的条件。
所以我们可以得出结论:
number_unboxed_operations=长度, number_boxed_operations=i+sum1.
如果 sum1 上的操作确实不同(sum1+=2),我们可以问问自己条件成立的时间。
条件为真直到 i==length 所以对于 sum1 操作将被执行 lenth-1 次;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。