5

这段代码,

for (byte b = 0; b < 100; b++)
{
    //some code
}


比这段代码运行得更快?

for (int b = 0; b < 100; b++)
{
    //some code
}
4

3 回答 3

18

一点都不; 如果有的话,它会更慢,因为底层硬件通常具有使用本机“int”类型(32 位二进制补码整数)但不使用 8 位有符号字节的指令。

于 2013-10-22T13:17:59.050 回答
7

尽可能始终使用 int 数据类型作为循环索引变量,因为与使用 byte 或 short 数据类型相比,它更有效。因为当我们使用 byte 或 short 数据类型作为循环索引变量时,它们涉及到隐式类型转换为 int 数据类型。

检查这个 http://www.precisejava.com/javaperf/j2se/Loops.htm

于 2013-10-22T13:19:32.410 回答
4

优化代码的正确方法是分析和分析它以找到热点,即花费大部分时间的地方。这些可以是(并且经常是)数据库或网络操作,或者是在大量数据上运行的糟糕算法。当发现热点时,可以进一步分析它们以找出使它们更快的方法(修改数据库查询、使用缓存等)

优化不是决定是使用 abyte代替 a int,还是使用 aStringBuilder代替 a StringBuffer。这被称为微优化,毫无价值。优化总是依赖于上下文,不能用一般的“使用 X 代替 Y”或“总是做 Z”规则来执行。

于 2013-10-22T13:34:27.933 回答