【发布时间】:2014-12-10 17:37:29
【问题描述】:
要从 Java 中的 Student 类创建新对象,我们通常使用以下语句
Student std = new Student();
我读到 new 运算符通过在堆中分配内存空间来创建新对象,但是我还读到调用构造函数 Student() 创建它。
所以,这有点令人困惑。哪一个正在创建对象std?是 new 操作符还是默认构造函数?
【问题讨论】:
-
new只是告诉编译器创建用于实例化对象的指令,而不是真正的运算符。 -
来点JLS怎么样?
-
new Student()调用构造函数。你问的两件事实际上是一回事。 -
或多或少,
new分配内存;构造函数初始化对象。
标签: java