块中声明的变量会发生什么?

时间:2013-12-24 19:28:13

标签: java android c++

我想知道退出该块后在块中声明的变量会发生什么?

我的意思是......

例如我正在使用while循环 然后我在其中声明一个整数i

循环结束后

程序是否释放该整数使用的内存?或者在我们销毁应用程序之前内存不是空闲的?或者只有GC可以释放那部分内存?

2 个答案:

答案 0 :(得分:2)

当你有一个局部变量时,它就在堆栈上。

当您输入方法时会分配此堆栈,并在从方法返回时释放。启动线程时会创建此堆栈,并在结束线程时释放该堆栈。在退出程序之前,可能无法释放您开始使用的主线程。

在很多方面,C ++和Java都是相同的,因为它们都被编译为机器代码,而且这台机器的工作原理与单CPU架构相同。

答案 1 :(得分:1)

局部变量存储在Stack中。当他们超出范围时,他们就会被挤出筹码。