考虑一个简单的while循环,如下所示
public static void main(String[] args) {
int i = 6;
int k = 10;
while(i<k) {
int v = 5;
i++;
}
}
变量v的空间是否仅在执行while循环时分配,并在循环结束时取消分配?
或者,无论while循环的终止或执行如何,它都会留在内存中吗?
如果它不是原始数据类型(任何类型的对象),它会有什么不同吗?
答案 0 :(得分:4)
在调用方法时,JVM会创建一个新的frame。一个框架包含local variables的数组。变量的数量在编译时确定。
在这种情况下,方法main
的框架将包含4个局部变量的数组:args
,i
,k
和v