黑马程序员技术交流社区
标题:
关于static修饰的变量在内存中存放的位置
[打印本页]
作者:
Zero霖
时间:
2014-3-3 17:01
标题:
关于static修饰的变量在内存中存放的位置
本帖最后由 Zero霖 于 2014-3-4 16:21 编辑
如题,弱弱的问一下,static变量是存到在内存的哪个区域中??
作者:
咖啡@糖豆
时间:
2014-3-3 22:40
内存总体一共分为了4个部分stack segment(栈)、heap segment(堆)、code segment(代码区)、data segment(静态区)
当我们在程序中,申明一个局部变量的时候,此变量就存放在了 stack segment(栈)当中,具体方法执行结束之后,系统自动释放JVM内存资源
当new 一个对象的时候,此对象放在了heap segment(堆)当中,jvm不定时查看这个对象,如果没有引用指向这个对象就回收。
而全局变量,static静态变量和字符串常量则存在在 data segment(静态区)中,不会释放
code segment(代码区)存放程序中方法的二进制代码,而且是多个对象共享一个代码空间区域。
作者:
漠然~回首℃
时间:
2014-3-3 22:53
static的变量存放在内存中的静态区里,它不随着对象的消失而消失,还有我个人觉得也应该重点记住,static修饰的方法,也就是静态方法,它优先于对象存在,所以静态方法可以类名. 去调用!希望对你有帮助
作者:
苏小惠
时间:
2014-3-3 22:53
内存方5区:栈,堆,方法区,本地方法区,寄存器。静态变量代码放在方法区的静态区域里。
作者:
天凌蓝
时间:
2014-3-3 22:55
方法区里面的静态区域
作者:
遗忘的青春年华
时间:
2014-3-3 23:01
静态修饰的方法只能静态方法去调用,或者类名.调用.静态成员随着类的加载而加载,生命周期比较长,存在于内存静态方法区
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2