A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 崔朋朋 中级黑马   /  2012-9-14 17:37  /  1540 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

类中定义的 static成员变量 和 static代码块 中定义的变量  是不是 都 放在内存的 静态域 里边?  

static成员变量 和 static代码块 中定义的变量  是不是多个对象之间共享 ?:o

3 个回复

倒序浏览
静态成员变量(唯独没有非静态成员变量)        方法区静态部分
静态方法                                                        方法区静态部分
非静态方法                                                        方法区非静态部分
静态代码块                                                        方法区静态部分
构造代码块                                                        方法区静态部分

static变量也会放到方法区静态部分中……
所以都是放到了方法去静态部分了
回复 使用道具 举报
类中定义的static成员变量属于类变量放在内存方法区中,对所有对象共享。
static代码块中定义的变量属于局部变量放在栈区内,不可以多个对象共享。
回复 使用道具 举报
(1)类中的static成员变量和static 代码块中的变量都 是在静态存储区,它们都是一种随类一起被加载的。
(2)static成员变量 和 static代码块 中定义的变量是共享的。 原因是对于静态变量,在内存中只有一个拷贝(节省内存),JVM只为静态分配一次内存,在加载类的过程中完成静态变量的内存分配,可用类名直接访问(方便),当然也可以通过对象来访问。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马