Java:在循环中声明对象
两者之间有什么区别吗Java:在循环中声明对象,java,loops,object,reference,Java,Loops,Object,Reference,两者之间有什么区别吗 for (...) { String temp = "temp"; } 及 我的意思是,Java是否浪费了很多资源来创建/删除循环中的对象 谢谢。区别在于变量的范围 定义的内部循环表示仅在循环内部可见 在循环外部定义表示在循环内部和外部可见 Java在创建/删除循环中的对象时会浪费很多资源吗 如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将其移出,以节省该语句浪费的cpu。差异在于变量的范
for (...) {
String temp = "temp";
}
及
我的意思是,Java是否浪费了很多资源来创建/删除循环中的对象
谢谢。区别在于变量的范围
- 定义的内部循环表示仅在循环内部可见
- 在循环外部定义表示在循环内部和外部可见
如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将其移出,以节省该语句浪费的cpu。差异在于变量的范围
- 定义的内部循环表示仅在循环内部可见
- 在循环外部定义表示在循环内部和外部可见
如果在循环中定义,那么它将在每次迭代中重新初始化,这意味着一个额外的可执行语句。如果您想在每次迭代中重新初始化它,那么最好将它移出,以节省该语句浪费的cpu。唯一的区别是范围的问题。在for块外部声明变量后,可以在for循环块外部访问变量(对象引用)
如果对象引用变量是在for循环内声明的,那么它只能在for循环块内访问。唯一的区别是作用域的问题。在for块外部声明变量后,可以在for循环块外部访问变量(对象引用)
如果对象引用变量在for循环内声明,则只能在for循环块内访问它。首先是两个范围变量。
Java创建的
String
对象的数量与您迭代循环的次数相同,但引用将相同。因此,这会消耗一些资源和内存。首先使用StringBuilder
或StringBuffer
这两个范围变量。
for (...)
{
String temp = "temp";
}
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
所做的任何事情都有很大区别。如果我是你,我会澄清这个问题。