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

建设银行网站色调txt免费全本电子书软件下载网站

建设银行网站色调,txt免费全本电子书软件下载网站,东莞专业网站推广策划,南漳做网站Java中new一个对象时#xff0c;JVM到底做了什么#xff1f; 在Java编程中#xff0c;new关键字是我们创建对象的最常用方式。但你是否想过#xff0c;当你写下new MyClass()时#xff0c;Java虚拟机#xff08;JVM#xff09;到底在背后做了哪些工作#xff1f;今天JVM到底做了什么 在Java编程中new关键字是我们创建对象的最常用方式。但你是否想过当你写下new MyClass()时Java虚拟机JVM到底在背后做了哪些工作今天我们就来深入探讨一下new一个对象时JVM的完整执行流程。 1. 类加载对象的蓝图 当你第一次使用new创建一个对象时JVM会首先检查这个类是否已经被加载。如果没有JVM会通过类加载器ClassLoader加载该类的字节码文件.class文件。类加载的过程包括 加载将类的字节码加载到内存中。验证确保字节码是合法的不会危害JVM的安全。准备为类的静态变量分配内存并设置默认值。解析将符号引用转换为直接引用。初始化执行类的静态初始化块static {}和静态变量的赋值操作。 类加载完成后JVM就可以基于这个“蓝图”创建对象了。 2. 内存分配为对象安家 类加载完成后JVM会为对象在堆内存Heap中分配一块空间。这块空间的大小是由对象的成员变量决定的。例如如果一个类有两个int类型的变量和一个String类型的变量那么JVM会分配足够的内存来存储这些数据。 注意Java的堆内存是所有线程共享的因此内存分配需要考虑线程安全问题。JVM会通过指针碰撞Bump the Pointer或空闲列表Free List等机制来高效地分配内存。 3. 初始化默认值清零操作 在内存分配完成后JVM会将对象的成员变量初始化为默认值。这些默认值包括 数值类型如int、long、double等的默认值为0或0.0。布尔类型boolean的默认值为false。引用类型如String、Object等的默认值为null。 这一步确保了对象在构造函数执行之前所有的成员变量都有一个已知的初始状态。 4. 执行构造代码块对象的“热身” 如果类中定义了构造代码块即在类中直接使用{}包裹的代码JVM会在调用构造函数之前执行这些代码。构造代码块通常用于执行一些通用的初始化逻辑。 例如 public class MyClass {{System.out.println(构造代码块执行);} }无论调用哪个构造函数构造代码块都会被执行。 5. 调用构造函数对象的“出生” 接下来JVM会调用与new语句匹配的构造函数。构造函数的主要作用是对对象进行进一步的初始化。例如 public class MyClass {private int value;public MyClass(int value) {this.value value;System.out.println(构造函数执行);} }在构造函数中你可以为成员变量赋值或者调用其他方法来完成对象的初始化。 6. 返回引用对象的“身份证” 当所有初始化操作完成后new操作会返回对象在堆内存中的引用。这个引用实际上是一个指向堆内存中对象地址的指针。程序通过这个引用来操作对象。 例如 MyClass obj new MyClass(10);这里的obj就是一个引用它指向堆内存中MyClass对象的地址。 总结new操作的完整流程 让我们用一个简单的例子来总结new一个对象时的完整流程 public class MyClass {private int value;{System.out.println(构造代码块执行);}public MyClass(int value) {this.value value;System.out.println(构造函数执行);}public static void main(String[] args) {MyClass obj new MyClass(10);} }输出结果 构造代码块执行 构造函数执行从输出中可以看到JVM首先执行了构造代码块然后调用了构造函数。 思考new操作的性能开销 虽然new操作看起来很简单但它背后涉及了类加载、内存分配、初始化等多个步骤这些操作都会带来一定的性能开销。因此在高性能场景下我们需要尽量避免频繁创建对象或者使用对象池Object Pool等技术来优化性能。 结语 通过本文的讲解相信你对Java中new一个对象时的完整流程有了更深入的理解。无论是类加载、内存分配还是构造代码块和构造函数的执行每一步都是JVM精心设计的。掌握这些底层细节不仅能帮助你写出更高效的代码还能让你在面试中脱颖而出。 如果你觉得这篇文章对你有帮助欢迎点赞、转发并在评论区分享你的看法我们下期再见 关注我获取更多技术干货
http://www.w-s-a.com/news/140763/

相关文章:

  • 如何做网站结构优化北京响应式网站
  • 出售源码的网站威海住房建设局网站
  • 网站建设补充报价单网站建设 技术指标
  • 做网站费用分摊入什么科目做网络网站需要三证么
  • 房屋备案查询系统官网杭州排名优化软件
  • 网站地图html网络营销的流程和方法
  • 注册好网站以后怎么做wordpress 获取插件目录下
  • 南京做网站dmooo地方网站需要什么手续
  • 网站开发合同有效期omeka wordpress对比
  • 杭州设计网站的公司广州网站改版领军企业
  • 网站备案系统苏州网站设计网站开发公司
  • 怎么样做微网站著名企业vi设计
  • 三分钟做网站网页设计心得体会100字
  • 网站建设支付宝seo建站是什么
  • 常州做网站的 武进学雷锋_做美德少年网站
  • 怎样建网站赚钱贵州seo和网络推广
  • 创建网站的工具站内seo优化
  • 网站特效 站长查询网网站
  • 百度移动端网站网站建设设计思想
  • 青岛建设官方网站南宁制作企业网站
  • 校园网站建设管理工作制度大网站开发费用
  • 做logo赚钱的网站分类网站 模板
  • 网站建设完成报告织梦网站怎么做备份
  • 邯郸市城乡建设管理局网站vimwiki wordpress
  • 如何修改wordpress站名如何制作公司网站
  • 宁波网站建设与推广方案网站有了备案号之后能做什么
  • 汕头手机端建站模板pinterest app下载
  • 网站主机免费宁波网站建设优化诊断
  • 吧网站做软件的软件下载简单的ui界面制作
  • 陕西网站制作公司网页制作与设计代码