黑马程序员技术交流社区

标题: static代码块 与 static关键字 疑问 ? [打印本页]

作者: 崔朋朋    时间: 2012-9-14 17:37
标题: static代码块 与 static关键字 疑问 ?
类中定义的 static成员变量 和 static代码块 中定义的变量  是不是 都 放在内存的 静态域 里边?  

static成员变量 和 static代码块 中定义的变量  是不是多个对象之间共享 ?:o
作者: 马睿    时间: 2012-9-14 17:43
静态成员变量(唯独没有非静态成员变量)        方法区静态部分
静态方法                                                        方法区静态部分
非静态方法                                                        方法区非静态部分
静态代码块                                                        方法区静态部分
构造代码块                                                        方法区静态部分

static变量也会放到方法区静态部分中……
所以都是放到了方法去静态部分了
作者: 丁旭    时间: 2012-9-14 18:13
类中定义的static成员变量属于类变量放在内存方法区中,对所有对象共享。
static代码块中定义的变量属于局部变量放在栈区内,不可以多个对象共享。
作者: 张飞年    时间: 2012-9-14 18:29
(1)类中的static成员变量和static 代码块中的变量都 是在静态存储区,它们都是一种随类一起被加载的。
(2)static成员变量 和 static代码块 中定义的变量是共享的。 原因是对于静态变量,在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问。




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