[讨论] 有关实例化的内存分布
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 会存在哪里?实例化的内存有没有变量池、常量池等概念 |