java对象的创建及内存布局

我们在操作java对象的时候,首先要简单的对其进行创建,然后再考虑对象的内存分配问题。创建的时候,会遇到符号是否引用问题的讨论。同时,内存的分配主要有两种方式“指针碰撞和空闲列表。接下来,我们会对这些知识点进一步的剖析,理清java对象创建和内存的有关问题。

1、对象的创建

在创建一个对象时,首先要检查创建它的类是否能够找到常量池中的符号引用,并检查符号引用所代表的类是否已经加载、解析和初始化,如果没有,那么必须执行相应的类加载过程。

2、分配对象内存

为对象分配内存本质上就是从Java堆中划分出一块固定大小的内存给Java对象使用。对象内存分配主要有两种:

(1)指针碰撞的分配方式用于在内存整齐的堆积中进行对象分配,所有被使用的内存放在一边,没有被使用的在另一边,中间放置指针作为界点的指示器,作为对象分配内存时,将指针移动到没有被使用的同时与对象相等大小的距离即可。

(2)空闲列表适合在不规则的存储器中分配存储器,虚拟机为了知道哪个存储器区域可用,必须维持列表,在进行存储器分配时,在列表中选择足够大的空间分配给对方。

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容