Java对象的创建
2022/1/2 9:07:20
本文主要是介绍Java对象的创建,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
类的创建过程
- new一个对象时,首先检查该指令的参数是否能在常量池中定位到一个类的符号引用
- 检查该符号引用代表的类是否已被加载、解析和初始化。若没有,则执行相应的类加载过程。
- 类加载检查通过后,进行内存的分配。
- 将分配到的内存空间(不包括对象头)都初始化为零值。
- 对对象进行必要的设置(设置对象头信息)。
- 执行构造函数。
为对象分配内存的方式
-
指针碰撞
假设Java堆中内存是绝对规整的,所有被使用过的内存都被放在一边,空闲的内存被放在另一边,中间放着一个指针作为分界点的指示器,那所分配内存就仅仅是把那个指针向空闲空间方向挪动一段与对象大小相等的距离。
-
空闲列表
如果Java堆中的内存并不是规整的,虚拟机就必须维护一个列表,记录上哪些内存块是可用的,在分配的时候从列表中找到一块足够大的空间划分给对象实例,并更新列表上的记录。
选择哪种分配方式由Java堆是否规整决定,而Java堆是否规整又由所采用的垃圾收集器是否带有空间压缩整理的能力决定。
解决分配内存线程不安全问题的方法
-
对分配内存空间的动作进行同步处理
CAS+失败重试
-
把内存分配的动作按照线程划分在不同的空间中进行
本地线程分配缓存(TLAB)
这篇关于Java对象的创建的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09必试!帮 J 人团队解决物流错发漏发的软件神器!
- 2025-01-09不容小觑!助力 J 人物流客服安抚情绪的软件!
- 2025-01-09为什么医疗团队协作离不开智能文档工具?
- 2025-01-09惊叹:J 人团队用啥软件让物流服务快又准?
- 2025-01-09如何利用数据分析工具优化项目资源分配?4种工具推荐
- 2025-01-09多学科协作难?这款文档工具可以帮你省心省力
- 2025-01-09团队中的技术项目经理TPM:工作内容与资源优化策略
- 2025-01-09JIT生产管理法:优化流程,提升竞争力的秘诀
- 2025-01-092024全球互联网流量分析报告
- 2025-01-09如何提升学校行政管理中的进度追踪效率?4个实用策略和3款工具推荐