在java中对象是通过什么创建出来的,java对象创建过程详解
Java对象创建过程:
类加载检查--分配内存--初始化零值--设置对象头--执行init方法
如下所示:
1.类别加载检查
当虚拟机遇到一条新指令时,首先检查这条指令的参数是否能在常量池中定位到某个类的符号引用,并检查这个符号引用所代表的类是否已经被ji加载、解析和初始化。如果没有,首先加载类。
(视频教程推荐:java视频)
2.分配内存
有两种方法:
(1)指针冲突:假设Java堆中的内存是有规律的,使用的内存在一边,空闲的内存在另一边,中间有一个指针作为分界点的指示器。分配的内存将指针移动到空闲端,移动的距离等于对象的大小。
(2) Free list:如果Java堆中的内存不规则,虚拟机必须维护一个链表,记录哪些内存块可用,从链表中找到足够大的空间分配给对象,并更新链表的记录。
3.初始化零值。
所有分配的内存空间都初始化为零值,如果使用了TLAB,那么在分配TLAB的时候就会初始化为零值。
4.设置对象标题
设置主类的元数据信息,对象的哈希码,对象的GC生成年龄等。
5.执行init方法初始化。
推荐教程:java开发入门以上是创建java对象的过程细节。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。