0
点赞
收藏
分享

微信扫一扫

Java 对象创建过程

流沙雨帘 2022-04-30 阅读 55
java面试

分析&回答


Java对象创建时机

  1. 使用new关键字创建对象,Java规范中被称为 : 由执行类实例创建表达式而引起的对象创建。
  2. 使用Class类的newInstance方法(反射机制)
  3. 使用Constructor类的newInstance方法(反射机制)
  4. 使用Clone方法创建对象
  5. 使用(反)序列化机制创建对象

Java 对象的创建过程

当一个对象被创建时,虚拟机就会为其分配内存来存放对象自己的实例变量及其从父类继承过来的实例变量(即使这些从超类继承过来的实例变量有可能被隐藏也会被分配空间)。在为这些实例变量分配内存的同时,这些实例变量也会被赋予默认值(零值)。在内存分配完成之后,Java虚拟机就会开始对新创建的对象按照程序猿的意志进行初始化。在Java对象初始化过程中,主要涉及三种执行对象初始化的结构,分别是 实例变量初始化实例代码块初始化 以及 构造函数初始化

  • 1、实例变量初始化与实例代码块初始化
    如果我们对实例变量直接赋值或者使用实例代码块赋值,那么编译器会将其中的代码放到类的构造函数中去,并且这些代码会被放在对超类构造函数的调用语句之后,构造函数本身的代码之前。
  • 2、构造函数初始化
    Java要求在实例化类之前,必须先实例化其超类,以保证所创建实例的完整性。

反思&扩展


总结

在实例化每个类时,都遵循如下顺序:先依次执行实例变量初始化和实例代码块初始化,再执行构造函数初始化。也就是说,编译器会将实例变量初始化和实例代码块初始化相关代码放到类的构造函数中去,并且这些代码会被放在对超类构造函数的调用语句之后,构造函数本身的代码之前。
image.png


为了大家更加方便的刷题,我们对文章进行了分类和整理,免费为大家提供刷题服务。程序员不欺骗程序员,赶紧扫码小程序刷起来!
请添加图片描述

为了一站式解决面者刷题问题,部分内容可能存在摘录情况,如有侵权辛苦您留言联系我们,我们会删除文章或添加引用文案,Thanks!

举报

相关推荐

0 条评论