BZeHong 2019-03-08 18:36 采纳率: 66.7%
浏览 4109
已采纳

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

图片说明

“类在加载的时候会将所有的静态内容放到静态方法区中”
“创建对象(new)时会在堆中给这个对象分配一块空间“
这两句话结合这段代码我就不懂了,static Single si = new Single() ,到底是什么在方法区里?又是什么在堆里呢?

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-03-09 00:32
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?