使用new关键字实际上做了三件事情:
1. 与堆栈(栈)处分配一个存储空间保存引用(固定的指针)。
2. 与堆区分配一片内存空间保存相应类的对象(引用数据类型的对象,如:数组、对象等)。
3. 将堆区对象的首地址赋予栈区引用。
举个例子:
Student stu;
stu = new Student();
在java中变量保存在栈内存中,对象保存在堆内存中。
在上面的例子,执行语句Student stu;
表示声明一个指向Student类对象的引用stu,这个引用stu保存在栈内存中。
如果此时执行语句:
stu = new Student();
1、new Student()表示创建一个Student类的对象,并在堆内存中分配空间;
2、stu = new Student();表示让stu这个引用变量指向这个Student类对象。
注意:使用 new 关键字时会调用类中的构造方法,对于有父类的类会首先调用其父类的构造方法。 |
|