今天学妹问我Java对象到底是怎么创建的?那我必须要从底层给学妹讲清楚呀!
一、 构造器
JAVA中构造器也称为构造方法,它用于对象的初始化。
构造器分为:
- 无参构造器
- 有参构造器
构造器的一些特点:
- 无参构造器只能有一个,有参构造器可以根据需求设置多个(构造器的重载)。
- 当你没有指定构造器时,则编译器会自动定义一个无参构造器。
- Java通过new关键字来调用构造器。
- 构造器有返回值,但是在构造器中不能使用return关键字来指定返回值。
- 构造器的方法名必须和类名一致
二、 对象创建过程
Java通过new关键字来调用构造方法,构造方法返回该类对象,但是并不是说对象完全由构造器来创建的。Java内部细节,想了解可继续往下看;
创建一个对象一般分为四步:
- 1、分配对象空间,并将对象的成员变量初始化为0或空(数值型变量为0,字符型为空)。
- 2、执行属性值的显示初始化。(显示初始化就是在声明变量时直接赋值的操作)
- 3、执行构造方法。
- 4、返回对象地址给相关变量。(对象在堆中创建好,会返回给栈中的变量,如下图)。4不懂可看我的一篇文章: Java面向对象内存分析.