黑马程序员技术交流社区
标题:
关于static静态成员与对象存在顺序
[打印本页]
作者:
黄长利
时间:
2012-3-22 17:30
标题:
关于static静态成员与对象存在顺序
本帖最后由 黄长利 于 2012-3-22 17:47 编辑
在类中关于静态成员及对象的加载存在顺序问题,代码如下:
class Person
{
String name; //成员变量,实例变量,只有对象被创建时才出现在堆内存
static String country = "CHiNA"; //静态的成员变量,即 类变量。
public void show()
{
System.out.println("Name:"+name+",Country:"+country);
}
}
复制代码
我知道类中静态成员是优先于对象而存在的,就是说在对象没创建之前,对于本例中的 country 已经被加载在方法区,
但是我一直疑惑:类的加载,不是随着对象的创建,需要调用类时,类才开始被加载的吗? 那么在对象创建之前,静态成员是
存放在哪里呢?
作者:
张锐
时间:
2012-3-22 17:34
既然LZ类定义成静态的了,说明你可以不用创建对象直接通过类名.变量名调用了啊。
作者:
陈汉帆
时间:
2012-3-22 23:47
类的加载不一定要伴随对象的创建,需要某个类时,类加载器加载这个类,然后静态成员存储到方法区
作者:
孙国军
时间:
2012-3-22 23:47
类的加载,不是随着对象的创建,需要调用类时,类才开始被加载的吗? 那么在对象创建之前,静态成员是
存放在哪里呢?
类是在创建对象时才会用到,并且由jvm加载到内存中,而随着类加载的静态成员是被放在方法区的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2