请问能解释一下关于内存的问题吗?

请问能解释一下关于内存的问题吗?

静态的成员变量与局部变量,静态的成员方法,接口中的常量和静态方法和默认方法,这些在继承和实现的过程中,在内存中的堆栈和方法区是个什么情况?

这个讲了的话,理解记忆对我就会更容易呀。谢谢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小班 2019-09-14 11:37:28

同学你好,类中静态的成员变量和静态方法存在堆中,局部变量存在栈中,接口中的常量默认是static、final修饰,所有final修饰的常量都在JVM中的常量区。接口可以理解一种特殊的类,所以接口也可以参考类的内容来理解。

子类继承父类后,子类继承父类中的属性,默认在内容中同样的位置去访问父类中的属性和内容

http://img1.sycdn.imooc.com//climg/5d7c5de9093685a908000383.jpg

接口的实现也可以这样理解。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • 提问者 firman #1
    老师,还有疑问。常量区也是是在堆中的吗?如果不是那以下还有一个疑问: 静态的成员变量和方法又称类变量和类方法,在加载类的时候就已经在内存里创建好了,并且只有一个,所以不会随着同一个类的多实例化而占用内存空间,这样的也存放在堆中,有没有一个特殊区域与堆中其他的实例对象区分开?
    2019-09-14 12:03:45
  • 好帮手慕小班 回复 提问者 firman #2
    同学你好,在jdk7的版本后,常量池成为堆内存中的一部分,比如String a="abc"中,引用a是存储在栈内存的,指向常量池中的"abc";,所以说常量池是JVM的一块特殊的内存空间。如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
    2019-09-14 14:45:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师