当前位置: 首页 > wzjs >正文

国外刺绣图案设计网站wordpress插件清单 很多很全

国外刺绣图案设计网站,wordpress插件清单 很多很全,南昌互联网网站开发,社区智慧警务网站如何推进警务室建设方案在Java中,对象的创建方式及其在虚拟机中的具体过程如下: 一、对象的创建方式 使用 new 关键字 最常见的对象创建方式,直接调用类的构造方法。 MyClass obj new MyClass();反射(Reflection) 通过 Class 或 Constructor…

在Java中,对象的创建方式及其在虚拟机中的具体过程如下:


一、对象的创建方式

  1. 使用 new 关键字
    最常见的对象创建方式,直接调用类的构造方法。

    MyClass obj = new MyClass();
    
  2. 反射(Reflection)
    通过 ClassConstructor 对象动态创建实例。

    // 使用Class.newInstance()(已废弃)
    MyClass obj = MyClass.class.newInstance();// 使用Constructor.newInstance()
    Constructor<MyClass> constructor = MyClass.class.getConstructor();
    MyClass obj = constructor.newInstance();
    
  3. 克隆(Clone)
    实现 Cloneable 接口,通过 clone() 方法复制现有对象。

    MyClass original = new MyClass();
    MyClass clone = (MyClass) original.clone();
    
  4. 反序列化(Deserialization)
    通过反序列化字节流恢复对象,不会调用构造方法。

    ObjectInputStream in = new ObjectInputStream(new FileInputStream("data.obj"));
    MyClass obj = (MyClass) in.readObject();
    
  5. 工厂方法(Factory Method)
    通过静态方法返回对象实例,隐藏构造细节。

    public class MyClass {public static MyClass create() {return new MyClass();}
    }
    MyClass obj = MyClass.create();
    
  6. Unsafe 类(不推荐)
    绕过构造方法直接分配内存(需谨慎使用)。

    MyClass obj = (MyClass) Unsafe.getUnsafe().allocateInstance(MyClass.class);
    

二、虚拟机中的对象创建过程

当 JVM 遇到 new 指令时,会按以下步骤创建对象:

1. 类加载检查

检查类是否已加载
若类未被加载,触发类加载过程(加载 → 验证 → 准备 → 解析 → 初始化)。

2. 内存分配

分配堆内存:根据对象的类型和大小,在堆中分配空间。
分配方式
| 方式 | 适用场景 | 实现 |
|---------------------|-----------------------------------------|----------------------------------------|
| 指针碰撞(Bump the Pointer) | 堆内存规整(如Serial、ParNew等带压缩的GC) | 通过移动指针分配连续内存。 |
| 空闲列表(Free List) | 堆内存不规整(如CMS) | 维护空闲内存块列表,从列表中分配。 |

TLAB(Thread Local Allocation Buffer)
为每个线程在堆中预先分配一小块内存(默认1%),避免多线程竞争,提升分配效率。

3. 内存空间初始化

零值初始化:将对象的实例变量初始化为默认值(如 int0,引用 → null)。

4. 设置对象头(Object Header)

对象头包含以下信息:
Mark Word:哈希码、GC分代年龄、锁状态标志等(32位/64位结构不同)。
类型指针:指向类元数据的指针(用于确定对象类型)。
数组长度(仅数组对象):记录数组长度。

5. 执行构造方法(<init>

实例变量初始化:执行代码中的显式赋值(如 private int x = 5;)。
构造代码块:执行 {} 中的代码。
构造函数:执行用户定义的构造方法(如 public MyClass() { ... })。


三、不同创建方式的虚拟机处理差异

创建方式内存分配零值初始化对象头设置执行构造方法
new 关键字
反射(Constructor)
克隆(Clone)❌(复制原值)
反序列化❌(恢复原值)
Unsafe.allocateInstance

四、关键点总结

内存分配策略:指针碰撞(规整堆) vs. 空闲列表(碎片化堆)。
TLAB 优化:减少多线程竞争,提升分配效率。
对象头作用:存储元数据(如锁状态、GC信息),支持运行时类型检查。
构造方法执行:对象创建的最后一步,完成用户定义的初始化逻辑。

理解这些机制有助于优化代码性能(如合理使用对象池)和排查内存问题(如对象头损坏导致的锁异常)。


文章转载自:

http://J0n4XVWw.qkdcb.cn
http://CwZcaBxP.qkdcb.cn
http://c5xlbDbX.qkdcb.cn
http://4cLY5RxI.qkdcb.cn
http://InVJWiL8.qkdcb.cn
http://upGRbBuK.qkdcb.cn
http://5pt4iepW.qkdcb.cn
http://qjN7OvlH.qkdcb.cn
http://RNhmMxKQ.qkdcb.cn
http://zbWLOwsK.qkdcb.cn
http://ALm2wN43.qkdcb.cn
http://GP2hvBoe.qkdcb.cn
http://Y2OwOL9l.qkdcb.cn
http://c9QNEyX8.qkdcb.cn
http://J3E1JWx5.qkdcb.cn
http://70Iwgk8k.qkdcb.cn
http://WJH6KjiF.qkdcb.cn
http://dHbyLUFi.qkdcb.cn
http://Vw4GPsFY.qkdcb.cn
http://gFnrJGDB.qkdcb.cn
http://OTcBKm4u.qkdcb.cn
http://s5XBDZfO.qkdcb.cn
http://EF6SsuO3.qkdcb.cn
http://mP7RR6bz.qkdcb.cn
http://12Eo7nC8.qkdcb.cn
http://l2Ccc3VH.qkdcb.cn
http://zDOr0mM9.qkdcb.cn
http://kfrrMkI8.qkdcb.cn
http://J5VpK678.qkdcb.cn
http://CF45PltP.qkdcb.cn
http://www.dtcms.com/wzjs/608018.html

相关文章:

  • 广州网站建设如何做商城网页制作
  • 宁波建网站选哪家好一点如何注册平台
  • 网站专题页优化建设银行业务管理中心网站
  • 制作网站需要什么语言华为弹性云服务器创建wordpress
  • 食品网站建设优化案例国际军事新闻直播在线观看高清
  • 贡井网站建设常德网站优化哪家好
  • 深圳的网站建设公司那家好涿州市建设局网站网址是多少
  • 网站建设与维护 参考文献家居网站源码
  • 360网站推广官网wordpress 多模板下载
  • 北京语言大学网页设计作业青岛seo关键词
  • 青岛建站费用化妆品电子商务网站建设策划书
  • 小程序企业网站开发ps网页设计培训
  • 网站建设kaicz建设工程网上质检备案网站
  • 做花藤字网站wordpress为什么慢
  • 如何做公司自己的网站网站是自己做还是让别人仿
  • 东莞网站推广电话北京奕杰企业管理咨询有限公司
  • 选手机网站住房和城乡建设厅网站办事大厅
  • 图书网站开发的实践意义衡水做企业网站的公司
  • 网站与网站做外链好吗泉州手机网站建设公司
  • 爱情网站设计视频网站开发工具
  • 我有服务器怎么做网站湖南长沙app
  • 玉林建设工程信息网站广告牌的样式大全
  • 招聘网站怎么投自己做的简历网店分销系统
  • 大型网站开发公司主机做网站工具
  • 东莞建站公司案例全网天下案例南宁推广公司
  • 网站建设作用图片移动互联网站开发与维护
  • 网络工程师自学教程seo报价单
  • 建设网站现在免费吗网站开发支付宝二维码支付
  • 厦门公司建站软件设计图片
  • 广东网站推广策略个人简历模板下载免费