在Java中,要从类Student创建一个新对象,通常使用以下语句:\n
Student
Student std = new Student();
\n我读到过,new操作符通过在堆中分配内存空间来创建新对象,但我也读到过调用构造函数Student()来创建它。\n所以,有点困惑。是new操作符还是默认构造函数创建了对象std?
Student()
std
原因:在Java中允许有与类名相同的方法名,但这可能导致混淆。为了消除歧义,使用new操作符。new操作符告诉JVM应该调用给定类和参数列表的实例初始化方法,并返回初始化的对象。
new
解决方法:Java的设计者可能可以找到一种替代的语法,但他们的设计目标是,每当在堆上分配内存时,都需要显式地调用出来,这要求使用关键字new。这在现在可能看起来很奇怪,但Java的目标受众大多是C和C++程序员,他们对垃圾回收持怀疑态度,这样做是为了确保开发人员不会在不知情的情况下分配内存。
用户名或电子邮箱地址
密码