java 对象的整个创建过程

理解java对象的创建过程:

1、即便没有使用static关键字,构造器其实也是静态方法,当首次创建类对象时或者类的静态方法或者静态域首次被访问时,java解释器必须查找类的class文件的路径,以定位class的位置。

2、载入class文件,有关静态初始化的多有动作都会执行,因此,静态初始化变量只有在class加载的时候执行一次。

3、当用new创建对象时,首先在内存堆中为对象分配一个足够大的存储空间。

4、这块存储空间会被清零,这就自动的将对象中的基本数据类型设置成默认值,而引用则被设置成null。

5、执行所有字段定义处的初始化动作。

6、执行构造器。

### Java 创建对象的详细过程和机制 #### 对象创建流程解析 当使用 `new` 关键字创建对象时,Java 虚拟机(JVM)会经历一系列复杂的内部处理: 1. **加载检查** JVM 首先检查该是否已被加载到内存中。如果没有,则触发加载过程[^1]。 2. **分配内存空间** 加载完成后,在堆上为新对象分配所需的内存量。此过程中可能会涉及垃圾回收以腾出足够的连续存储区域。 3. **设置初始值** 分配好内存后,所有实例变量会被赋予默认初值(如整型设为0)。此时对象尚未完全准备好供应用程序使用。 4. **执行构造函数** 接下来是最重要的一步——调用指定或默认构造器来初始化成员属性并执行任何必要的配置逻辑。这期间可以访问已声明但未显式赋值的数据域,并对其进行适当设定。 5. **返回引用地址** 构造结束后,整个新建实体正式成为有效状态,并将其所在位置作为结果传递回原处以便后续操作利用。 ```java // 示例代码展示如何通过 new 关键字创建对象 public class Student { private int age; public Student(int age) { this.age = age; } } ``` 上述描述涵盖了基于 `new` 的标准建模途径;然而值得注意的是还有其他几种建立方式存在差异之处,比如借助反射API中的 `Class.newInstance()` 方法或是采用序列化技术反序列化已有数据流等方式实现相同目的[^2]。 对于每一种不同的构建模式而言,虽然具体细节有所区别,但是核心原理基本一致:即都是围绕着准备资源->填充内容->产出成品这样一个通用框架展开工作的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值