jvm对象的创建

先检查这个对象所代表的类是否已经被加载、解析和初始化过,如果没有在先执行相应的类加载过程。类加载通过后,可以确定所需的内存大小,并在Java堆中分配内存。分配内存的过程要考虑线程安全(指针碰撞,空闲列表)。接着虚拟机将分配到的内存空间都初始化为零值。接着设置对象头信息。最后执行<init>方法按照程序员的意愿对对象初始化。

 

对象的内存布局:

1、对象头:运行时相关数据。

2、实例数据:真正存储的有效信息。

3、对齐填充:非必要。

 

对象的访问定位:要使用对象,就要通过栈上的reference数据来操作堆上的具体对象。

1、使用句柄:

2、直接指针:

posted on 2018-09-04 14:46  植物大戰僵尸  阅读(97)  评论(0编辑  收藏  举报

导航