gpt4 book ai didi

java - 就内存管理而言,定义全局变量相对于局部变量的好处

转载 作者:行者123 更新时间:2023-11-30 06:09:50 28 4
gpt4 key购买 nike

在java中我们知道类级别和方法级别变量的不同作用域。

我想更好地了解内存管理。

谁能告诉我使用方法 justAnyMethod1 相对于 justAnyMethod2 (就内存管理而言)有什么好处(如果有的话)?

public class MyClass {

Emp e;

public static void main(String[] args) {
MyClass mca=new MyClass();
for(int i=0;i<10;i++) {
mca.justAnyMethod1();
mca.justAnyMethod2();
}
}

void justAnyMethod1(){
e=new Emp(1,1000,"Edge");
}
void justAnyMethod2(){
Emp l=new Emp(1,1000,"Edge");
}


}


class Emp {

int id=0;
int sal=0;
String addr="";

public Emp() {}

public Emp(int id, int sal, String addr) {
super();
this.id = id;
this.sal = sal;
this.addr = addr;
}


}

谢谢!

对于 justAnyMethod2(),只要该方法完成,该对象就有资格进行垃圾回收,但我们都知道,不能保证它何时会发生。所以如果程序每秒运行一次,它最终会在池中创建许多对象,在 justAnyMethod1() 的情况下也会一样吗?如果是,还有其他方法可以避免吗?

最佳答案

我不能 100% 确定您的特定情况,但是

如果是这样

public class MyClass {

Emp e=new Emp();

然后它将在类级别声明并实例化,并且每个方法方法调用都会不断覆盖它,而不是为新对象分配新空间。

关于java - 就内存管理而言,定义全局变量相对于局部变量的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50501518/

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