为了账号安全,请及时绑定邮箱和手机立即绑定

在类中new一个对象,那么这个对象是放在堆中还是方法区中呢?

在类中new一个对象,那么这个对象是放在堆中还是方法区中呢?

holdtom 2019-04-16 18:15:30
‘’类在加载的时候会将所有的静态内容放到静态方法区中”“创建对象(new)时会在堆中给这个对象分配一块空间“这两句话结合这段代码我就不懂了,static Single si = new Single() ,到底是什么在方法区里?又是什么在堆里呢?
查看完整描述

3 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

任何情况下,对象都不可能在“方法区”,因为后者是存放代码的地方,而对象是数据。
虽然有static,但是static修饰的是si这个对象引用(相当于指针),而new出来的对象放在堆(heap)上,和你在别的任何地方写的new出来的对象,没有任何区别。

查看完整回答
反对 回复 2019-05-16
?
喵喵时光机

TA贡献1846条经验 获得超7个赞

首先 你new Single() 这个方法的时候 这个new对象的过程是在堆里面的 而在栈里面创建了一个static 的变量si 来指向 堆里面的 new出来的对象


查看完整回答
反对 回复 2019-05-16
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

编程追究它存储在那里没用,除非你也要开发一个JAVA那样的语言。


查看完整回答
反对 回复 2019-05-16
  • 3 回答
  • 0 关注
  • 2876 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信