java语言中,类的成员变量分配在哪个内存区?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java语言中,类的成员变量分配在哪个内存区?相关的知识,希望对你有一定的参考价值。
成员变量有静态和非静态,静态成员变量是共享数据,在共享区中,也叫方法区中。非静态成员变量在堆内存中,作用于整个类中。
而局部变量在栈内存中,定义在函数中,函数结束内存释放。 参考技术A 非静态的成员变量在堆上追问
局部变量和非静态的成员变量都在堆上吗?在main函数在执行时,好像都是局部变量在堆内存中被分配空间啊,不理解成员变量怎么分配的···
追答局部变量如果是基础类型,则在栈上,如果是引用类型,则引用被存在栈上,引用指向的对象是在堆上的
本回答被提问者采纳 参考技术B 成员变量在堆内存中 参考技术C 变量在栈...实例在堆。。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又有什么关系?
希望可以解答地比较清楚.
子类实例化前必须先实例化父类,因为子类需要父类的基础
如果没有实例化对象,也没有访问静态字段或者静态方法那么也没有分配,类的信息是保存在栈中的,对象的创建是在堆中的
对象独占内存空间,static说明资源共享,也就是只占一份内存本回答被提问者和网友采纳
以上是关于java语言中,类的成员变量分配在哪个内存区?的主要内容,如果未能解决你的问题,请参考以下文章