黑马程序员技术交流社区

标题: Static函数运行时在内存的状态是怎样的 [打印本页]

作者: 温昌寿    时间: 2012-2-21 22:26
标题: Static函数运行时在内存的状态是怎样的
想知道static函数在内容运行是怎样被加载与清理
作者: 黄奇耀    时间: 2012-2-21 23:08
静态数据对象存在于全局数据区域,程序一开始运行的时候就必须存在,因此它的加载是在函数之前,静态数据成员是属于类而非对象,只创建一次,而后对象共享。它不同于全局变量,因其只在局部有效,即该种类内;也不同于普通变量,而是所有对象共享。
作者: 李晓俊老师    时间: 2012-2-21 23:57
静态成员的生命周期最长,,它随着类的加载而加载,整个程序都可以用类名去调用,
只有当程序结束后,所有类在内存中消失,它也就随着类的消失而消失
作者: zclove898    时间: 2012-2-22 00:30
static是静态修饰符,用来修饰成员变量和成员方法。static是随着类的加载而加载。也就是说只要类在,static就会一直存在于内存中,它会随着类的消失而消失。
static所在的内存区域叫做“方法区”或者是“共享区”。被static修饰的类变量随着类的加载而存在于方法区中。
希望对你有点帮助
作者: 王涛    时间: 2012-2-22 00:37
static变量随着类的加载而加载,静态会随着;类的消失而消失,说明他的生命周期最长,他先于对象存在,静态被所有对象所共享。
static变量随着类的加载而存在于方法区中,也就是共享区中。
实例变量随着对象的建立而存在于堆内存中。
static变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2