Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:在循环中声明对象_Java_Loops_Object_Reference - Fatal编程技术网

Java:在循环中声明对象

Java:在循环中声明对象,java,loops,object,reference,Java,Loops,Object,Reference,两者之间有什么区别吗 for (...) { String temp = "temp"; } 及 我的意思是,Java是否浪费了很多资源来创建/删除循环中的对象 谢谢。区别在于变量的范围 定义的内部循环表示仅在循环内部可见 在循环外部定义表示在循环内部和外部可见 Java在创建/删除循环中的对象时会浪费很多资源吗 如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将其移出,以节省该语句浪费的cpu。差异在于变量的范

两者之间有什么区别吗

for (...) {
  String temp = "temp";
}

我的意思是,Java是否浪费了很多资源来创建/删除循环中的对象


谢谢。

区别在于变量的范围

  • 定义的内部循环表示仅在循环内部可见

  • 在循环外部定义表示在循环内部和外部可见

Java在创建/删除循环中的对象时会浪费很多资源吗


如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将其移出,以节省该语句浪费的cpu。

差异在于变量的范围

  • 定义的内部循环表示仅在循环内部可见

  • 在循环外部定义表示在循环内部和外部可见

Java在创建/删除循环中的对象时会浪费很多资源吗


如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将它移出,以节省该语句浪费的cpu。

唯一的区别是范围的问题。在for块外部声明变量后,可以在for循环块外部访问变量(对象引用)


如果对象引用变量是在for循环内声明的,那么它只能在for循环块内访问。

唯一的区别是作用域的问题。在for块外部声明变量后,可以在for循环块外部访问变量(对象引用)


如果对象引用变量在for循环内声明,则只能在for循环块内访问它。

首先是两个范围变量。

  • “在循环内定义”将仅对循环可见
  • “定义外循环”将对循环内外可见
  • 创建/删除Java会浪费大量资源


    Java创建的
    String
    对象的数量与您迭代循环的次数相同,但引用将相同。因此,这会消耗一些资源和内存。首先使用
    StringBuilder
    StringBuffer

    这两个范围变量。

    for (...) 
    
    {
    
    String temp = "temp";
    
    }
    
  • “在循环内定义”将仅对循环可见
  • “定义外循环”将对循环内外可见
  • 创建/删除Java会浪费大量资源

    Java创建的
    String
    对象的数量与您迭代循环的次数相同,但引用将相同。因此,这会消耗一些资源和内存。使用
    StringBuilder
    StringBuffer

    for (...) 
    
    {
    
    String temp = "temp";
    
    }
    
    在这种情况下,您的温度仅适用于for loop

    String temp;
    
    for (...)
    
     {
    
      temp = "temp";
    
    }
    
    在这里,如果您在一个方法中编写此代码,那么它在整个方法中都是可用的

    注意:-局部变量在堆栈中创建,并在执行该方法后删除

    在这种情况下,您的温度仅适用于for loop

    String temp;
    
    for (...)
    
     {
    
      temp = "temp";
    
    }
    
    在这里,如果您在一个方法中编写此代码,那么它在整个方法中都是可用的


    注意:-局部变量在堆栈中创建,并在执行该方法后删除。

    它不是对象。它是一个局部变量或类变量。我不依赖它,我更喜欢可读性。如果必须仅在for循环中使用temp,请使用第一个。您的问题仅显示将
    temp
    设置为文本字符串,使其成为循环不变。真的吗?这与您使用
    temp
    所做的任何事情都有很大区别。如果我是你,我会澄清这个问题。它不是一个物体。它是一个局部变量或类变量。我不依赖它,我更喜欢可读性。如果必须仅在for循环中使用temp,请使用第一个。您的问题仅显示将
    temp
    设置为文本字符串,使其成为循环不变。真的吗?这与您使用
    temp
    所做的任何事情都有很大区别。如果我是你,我会澄清这个问题。