当前位置: 首页 > 面试题库 >

Java优化:局部变量或函数调用

鞠隐水
2023-03-14
问题内容

你会怎么做?

 doThings(folder.getInstructions()) ;
 for (Instruction instruction : folder.getInstructions()) {
    // do things
 }
functionCall(folder.getInstructions()) ;

或这个 :

instructions = folder.getInstructions() ;
doThings(instructions)
for (Instruction instruction : instructions) {
  // do things
}
functionCall(instructions) ;

最重要的是,我想知道何时在本地变量中存储值更有效,何时进行函数调用更好。


问题答案:

更具可读性更有效。临时表达式和局部变量需要相同的空间,从CPU / JVM的角度看,它们并没有太大区别。JVM将在优化/内嵌方面做得更好。

但是,如果getInstructions()方法调用很昂贵,则将其 缓存
在局部变量中。如果这只是一个简单的方法,无论如何都会内联。你的具体情况也恕我直言,局部变量
更具可读性,甚至可能更正确的,如果getInstructions()可能有一段时间不同的结果。



 类似资料:
  • 当你在函数定义内声明变量的时候,它们与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是 局部 的。这称为变量的 作用域 。所有变量的作用域是它们被定义的块,从它们的名称被定义的那点开始。 使用局部变量 例7.3 使用局部变量 #!/usr/bin/python # Filename: func_local.py deffunc(x):     print'x is', x    

  • 怎样使一个变量变成“局部”变量? 局部变量 如果变量用local来声明,那么它就只能够在该变量被声明的代码块中可见。 这个代码块就是局部范围。 在一个函数中,一个局部变量只有在函数代码中才有意义.[1] 例子 24-12. 局部变量的可见范围 #!/bin/bash # ex62.sh: 函数内部的局部变量与全局变量。 func () { local loc_var=23 #

  • 问题内容: 好的,我知道标题不能完全解释这个问题。因此,我正在编写一个执行大量计算的程序,并尝试对其进行优化,以使其运行不会太慢。我有一个函数,该函数是一个类的成员,该函数被调用约500万次。这是功能: 我想知道在类中声明变量vpPointx和vpPointy是否比每次调用函数时声明它们更好/更快。这将是一个很好的优化还是效果不大? 通常,如果这里有任何可以优化的内容,请告诉我。 问题答案: 通过

  • 问题内容: 我对JavaScript比较陌生,我想我知道回调函数的工作原理,但是在搜索Web几个小时后,我仍然不明白为什么我的代码不起作用。 我正在提出一个AJAX请求,该请求返回一个字符串数组。我正在尝试将此数组设置为局部变量,但是一旦执行回调函数,它似乎就失去了它的值。 在控制台中,显示为未定义。谁能向我解释为什么未设置此参数,以及如何在回调函数中设置局部变量。 问题答案: 这里的问题是aja

  • 问题内容: 我正在使用函数,这样我的程序就不会一团糟,但我不知道如何将局部变量变成全局变量。 问题答案: 这是两种实现相同目的的方法: 使用参数并返回(推荐) 运行时,将获得以下输出 使用全局变量(永远不要这样做) 现在您将获得:

  • #include <stdio.h> void fun_a(void) { int a = 0; printf("%d\n", a); } void fun_b(void) { int b = 1; fun_a(); printf("%d\n", b); } void fun_c(void) { int c = 2; fun_b();