猿问

栈内存什么时候释放的?


栈内存的释放


当在一段代码块定义一个变量时,Java在栈中为这个变量分配内存空间,当该变量退出其作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。

上面这段话,什么叫“当该变量退出其作用域后”啊?好难懂


fenkapian
浏览 1970回答 3
3回答

qq_青枣工作室_0

public int test() {     if(true) {         int a = 1;    // 这个变量a的作用域在这个if语句内     }     // 退出if语句后,变量a也退出其作用域了,Java会自动释放该变量所分配的内存空间          int b = 1; // 这个变量b的作用域在这个函数test()内     return 0;    // 退出函数后,变量b也退出其作用域了,Java会自动释放该变量所分配的内存空间 }

慕的地8582982

YOTDDDGWMMZRUENUXROBGJVHHUFPIIXXWSYVVYCWPJWGHJUXIIESLPYTPVIWGFOEHCGKEHBUTRUYUSEHUUVTFLCLIWGQGJSYVIBBQNKEGDDYIYTKZNXDQZVJSPBFFFPFVEOLHNQUOCVVOYYXDDKUXWRQROMYBBRHHUNYMJFOOOERFVYIMWPSDGZJYZCZNGJDGJGGAUSVEIYYNSVCCIETTWBOSHEHUQNEUYXRVSZVHGOXUTDWGAJLFICWJJJWJDQDHIYYVYFRVICVFHUQQNNPEVGPJIXAIYAWNKEXOFRLEOCFSWHVBYVVJOGAXPIVVTTCFPFPJPFZSZGNQXHSRHOBKYRHHXHQCEYPTPCZZLQVLVPCEHKKAKQNYHIEXATNNDNKFCSIHVCOLYRDDXYLZGWWJTWJKYUXHVCSCFPFCCVBVPODKMWSOYXHYNCVPLORVXHPYILETVSILHKFITSIEHKIEUWFCWFPYOEULUQHQGCSIROYSCSXNJGISOKTQMGCKUXGDAPFTTWRHKUKMCMNOLGQZPGJRBLYHJAVEVYAEIZKAWUJZIRULIFALBENQDNQODZPSPNDMPRYIRUXZDGPMJPLCZCFIYGJTUDHKHDNVYVXQFPYBYOYOLTQZCSPFBKNQYEAJNKNWTBTBCFCEUKAUKHXRAKHWTOKTCGZJEHYHEBDHYJSJMWSOKMPZBKAEABLUJTWRUBEVZJRHXASODBJNQUQGWILHKHRIFVEBDZOZCFPYAJAIEGJUXNDMCMSCYBFOLJRJEJZBSPTILNDNMPEOYBKACZHCFVRVGPYTJLZIDTRBENWMVGPLBEOEVQTIEAPSVLBXGQTRTQNKGURAWZBEDXDVORELSAWYVSIMBENKKMQZCLBRHRB

望远

这里就是说明了为什么Java中变量有其作用域,而在作用域以外不可使用该变量,就是因为只要变量不在它的作用域范围内,它的内存就会被释放,可存放其他数据。
随时随地看视频慕课网APP

相关分类

Java
我要回答