Java类的实例化对象成员在内存空间怎么分配,调用构造函数又是在内存中怎么分配

class Country {
String name;

void value() {
name = "China";
}
}

class City extends Country {
String name;

void value() {
name = "Hefei";
super.value();//不调用此方法时,super.name返回的是父类的成员变量的值null
System.out.println(name);
System.out.println(super.name);
}

publicstaticvoid main(String[] args) {
City c=new City();
c.value();
}
}
这段程序在内存是怎么分配的,子类继承父类,子类和父类在内存怎么分配,有什么联系。定义类但没有实例对象此时有没为类分配内存?如果类实例化对象,对象在内存怎么分配?与static又有什么关系?
希望可以解答地比较清楚.

第1个回答  推荐于2016-01-31
我觉得这个问题直接百度去找应该有更专业的回答,因为想搞清楚java对象怎么分配不是一言两语可以说清楚的,这涉及到java对象怎么回收问题。
子类实例化前必须先实例化父类,因为子类需要父类的基础
如果没有实例化对象,也没有访问静态字段或者静态方法那么也没有分配,类的信息是保存在栈中的,对象的创建是在堆中的
对象独占内存空间,static说明资源共享,也就是只占一份内存本回答被提问者和网友采纳
相似回答