方法调用后原始局部变量会发生什么变化?
What does happen to primitive local variables after a method call?
首先,我知道这个问题必须在某个地方得到回答,但我真的找不到这个问题的答案,很可能是因为我没有在寻找正确的东西。
所以我知道 Java 垃圾收集器,它负责处理未使用的对象,但是在方法调用之后原始数据类型的本地值会发生什么情况?
例如
public void anyMethod() {
int foo = 20;
}
方法调用后 foo 发生了什么?它是否仍然在内存中的某个地方,即使它不再被使用? "technicality" 这样的我还需要关心吗?我知道,当涉及到对象时,只处理引用,而对于原始值类型,情况并非如此。也许我也只是误解了原始值是如何存储在 Java 以及
中的
无论哪种方式,我都希望有人能帮助我,或者告诉我为什么我的问题很愚蠢,我应该为自己感到难过。
亲切的问候,
每个函数都在栈帧中执行。 方法局部变量 在此堆栈帧上分配内存,当方法完成时(有或没有异常),堆栈帧的内容将被丢弃,其中的所有数据都将丢失。
首先,我知道这个问题必须在某个地方得到回答,但我真的找不到这个问题的答案,很可能是因为我没有在寻找正确的东西。
所以我知道 Java 垃圾收集器,它负责处理未使用的对象,但是在方法调用之后原始数据类型的本地值会发生什么情况?
例如
public void anyMethod() {
int foo = 20;
}
方法调用后 foo 发生了什么?它是否仍然在内存中的某个地方,即使它不再被使用? "technicality" 这样的我还需要关心吗?我知道,当涉及到对象时,只处理引用,而对于原始值类型,情况并非如此。也许我也只是误解了原始值是如何存储在 Java 以及
中的无论哪种方式,我都希望有人能帮助我,或者告诉我为什么我的问题很愚蠢,我应该为自己感到难过。
亲切的问候,
每个函数都在栈帧中执行。 方法局部变量 在此堆栈帧上分配内存,当方法完成时(有或没有异常),堆栈帧的内容将被丢弃,其中的所有数据都将丢失。