gpt4 book ai didi

java - 这些操作中哪一个在节省内存和 CPU 方面更好? ( java )

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:40 26 4
gpt4 key购买 nike

我在内存有限的环境中编程。所以我想知道哪个是最好的选择,以及为什么。它有显着差异吗?不确定 Java 如何处理 Assembly...

选项A?每个for循环都会进行if检查

private static boolean checkState(int[][] matrix, int option){
for (int X=0; X < 5; X++)
for (int Y=0; Y < 5; Y++)
if (option == 0){ //if option is 0, checks if empty (-1 on all fields means empty in this case)
if (matrix[Y][X] != -1)
return false;
} else //if option is 1, checks if full (if at least one camp has -1, it means it's not full)
if (matrix[Y][X] == -1)
return false;

return true;
}

选项 B? if 语句在 for 循环之前完成,但 for 循环有两个(几乎相同)版本

private static boolean checkState(int[][] matrix, int option){
if (option == 0) {
for (int X=0; X < 5; X++)
for (int Y=0; Y < 5; Y++)
if (matrix[Y][X] != -1)
return false;
} else
for (int X=0; X < 5; X++)
for (int Y=0; Y < 5; Y++)
if (matrix[Y][X] == -1)
return false;
return true;
}

Pption C?两个不同的功能

private static boolean checkEmpty(int[][] matrix){
for (int X=0; X < 5; X++)
for (int Y=0; Y < 5; Y++)
if (matrix[Y][X] != -1)
return false;
return true;
}

private static boolean checkFull(int[][] matrix){
for (int X=0; X < 5; X++)
for (int Y=0; Y < 5; Y++)
if (matrix[Y][X] != -1)
return false;
return true;
}

最佳答案

我认为选项 B 会更好,因为 if 条件只会检查一次,如果为 true,则 if block 中的代码将被执行,否则将执行 else block 中的代码

选项 A 显然是一个糟糕的选择,因为 if block 会在循环的每次迭代中执行。

选项 C 似乎有点矫枉过正,没有必要为此创建单独的方法。

关于java - 这些操作中哪一个在节省内存和 CPU 方面更好? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27438412/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com