Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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_Memory_Scope - Fatal编程技术网

Java 如果(真)要缩小范围:好主意还是垃圾?

Java 如果(真)要缩小范围:好主意还是垃圾?,java,memory,scope,Java,Memory,Scope,在过去,我不得不创建一些巨大的方法,这些方法不能真正变成一堆较小的方法,因为这样做根本没有任何意义 由于初始化许多变量可能会占用大量内存,因此我问自己,在这些情况下,简单地使用if(true)语句是否有助于减少作用域,从而减少内存负载 示例: if (true) { MyClass obj1 = new MyClass(1); MyClass obj2 = new MyClass(2); } // ...rest of method which does not need obj1 and ob

在过去,我不得不创建一些巨大的方法,这些方法不能真正变成一堆较小的方法,因为这样做根本没有任何意义

由于初始化许多变量可能会占用大量内存,因此我问自己,在这些情况下,简单地使用
if(true)
语句是否有助于减少作用域,从而减少内存负载

示例:

if (true) {
MyClass obj1 = new MyClass(1);
MyClass obj2 = new MyClass(2);
}
// ...rest of method which does not need obj1 and obj2

这是一种实用的方法还是纯粹的垃圾?

您不需要
if(true)
来减少变量的范围

这就足够了

{
MyClass obj1 = new MyClass(1);
MyClass obj2 = new MyClass(2);
}

您不需要使用
if(true)
来缩小变量的范围

这就足够了

{
MyClass obj1 = new MyClass(1);
MyClass obj2 = new MyClass(2);
}

对你来说,这真的像是可读的代码吗?此外,您认为这将如何减少内存负载?变量将在方法完成之前被垃圾收集,这比等待整个方法结束并看到其变量在此时被垃圾收集要好得多。一个简单的
obj1=null
(和一条注释)将变量赋值为null允许对象的垃圾收集,但它不限制变量的范围。很可能,您不想将变量用于其他任何用途,因此最好关闭范围。根据苏莱曼·杰奈迪的回答,我很高兴地使用大括号,尽管对我来说,它总是限制可读性的范围,而不是垃圾收集。对你来说,这真的像是可读的代码吗?此外,您认为这将如何减少内存负载?变量将在方法完成之前被垃圾收集,这比等待整个方法结束并看到其变量在此时被垃圾收集要好得多。一个简单的
obj1=null
(和一条注释)将变量赋值为null允许对象的垃圾收集,但它不限制变量的范围。很可能,您不想将变量用于其他任何用途,因此最好关闭范围。根据苏莱曼·杰奈迪的回答,我很乐意使用大括号,尽管对我来说,它总是限制可读性的范围,而不是垃圾收集。哇,我真的不知道你可以这么做,非常感谢。哇,我真的不知道你可以这么做,非常感谢。