12|对象创建全家桶:JVM中对象创建的模式及最佳实践
康杨
你好,我是康杨。
今天我们一起站在对象创建的视角,看看 JVM 为我们提供了哪些能力,还有怎么更好的应用这些能力。我们也会聊一下,创建对象需要考虑的因素以及对象创建对对象回收的影响。
首先我们从一个实际的场景开始,假设你是某一个在线阅读网站的程序员,老板安排了一个任务,需要统计在线图书被阅读的次数。你决定采用面向对象的思想来设计,所以第一步你先设计了一个 Book 对象,它有四个属性,分别是这本书的编号、书名、图书的简介以及这本书被阅读的次数。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了JVM中对象创建的模式及最佳实践。通过实际场景引出对象创建的需求,以Book对象为例,详细介绍了对象创建的字节码和对象在JVM中存在的形态。文章还探讨了对象在内存中的大小以及栈上分配的优化方式,包括TLAB的使用。此外,文章还介绍了通过反射创建对象的方式,并提到了创建型设计模式。通过对JVM对象创建的全面讲解,读者可以深入了解对象创建的底层原理和最佳实践,为他们在实际开发中的对象创建提供了有益的指导。文章还介绍了建造者模式,用于构建复杂对象,降低系统的实现和维护成本。总的来说,本文通过实际案例和技术原理,为读者提供了深入了解JVM对象创建的机制和最佳实践的机会。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《云时代的 JVM 原理与实战》,新⼈⾸单¥59
《云时代的 JVM 原理与实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- TableBear请教老师一个问题,开启或者关闭对象指针压缩,对象指针和Class指针是不是应该同步开启或关闭压缩。文中举的例子压缩指针的时候是12字节头部+16字节实例数据。未压缩指针的是不是应该16字节头部+32字节实例数据?2023-10-29归属地:广东11
- C.优化点: 1、静态工厂方法,通过静态方法返回对象实例,相比于直接调用构造函数,静态工厂方法可以提供更多的灵活性和优化空间。(例:静态工厂方法中使用对象池或缓存来重用对象,避免重复创建) 2、使用对象池或缓存:对于频繁创建和销毁的对象,可以考虑使用对象池或缓存来重用对象,避免重复创建和垃圾回收的开销。(Apache Commons Pool) 3、使用不可变对象,不可变对象是指其状态在创建后不可更改的对象,可以避免线程安全性问题和复制对象的开销。 4、懒初始化,推迟对象初始化的时机,使用的时候初始化。 解耦: 1、工厂模式 2、依赖注入2023-09-19归属地:江苏1
- sc讲的真清晰2023-09-18归属地:浙江
收起评论