[讨论] 有关实例化的内存分布

huangriyan 2014-09-12
大侠们
我想知道类实例化的过程,是不是都会调用 Reflection的 invoke_constructor 函数。其中有一句话
Handle receiver = klass->allocate_instance_handle(CHECK_NULL);
是不是为对象分配内存空间?
我跟了一下代码,
其路径大致如下:
instanceKlass::allocate_instance [instanceKlass.hpp]
CollectedHeap::obj_allocate       [collectedHeap.inline.cpp]
其中
里面有一个函数调用 post_allocation_setup_obj,这个函数是干什么的。其好像是为了set_klass 而已,需不需要奖类实例在方法区的数据进行复制?

我的问题是:
实例化的对象是怎么和类联系的?比如 object.filed1=object.filed1+10,那么这个 object.filed1 会存在哪里?实例化的内存有没有变量池、常量池等概念
Global site tag (gtag.js) - Google Analytics