我想知道退出该块后在块中声明的变量会发生什么?
我的意思是......
例如我正在使用while循环
然后我在其中声明一个整数i
程序是否释放该整数使用的内存?或者在我们销毁应用程序之前内存不是空闲的?或者只有GC可以释放那部分内存?
答案 0 :(得分:2)
当你有一个局部变量时,它就在堆栈上。
当您输入方法时会分配此堆栈,并在从方法返回时释放。启动线程时会创建此堆栈,并在结束线程时释放该堆栈。在退出程序之前,可能无法释放您开始使用的主线程。
在很多方面,C ++和Java都是相同的,因为它们都被编译为机器代码,而且这台机器的工作原理与单CPU架构相同。
答案 1 :(得分:1)
局部变量存储在Stack
中。当他们超出范围时,他们就会被挤出筹码。