为什么不在变量中存储'new'的结果

1 java new-operator

我被告知new关键字创建一个类的实例,并返回一个存储在内存中的对象,并分配给类类型的变量.如果粗体语句为真,为什么下面的陈述不正确?

new Class(); 
Run Code Online (Sandbox Code Playgroud)

因为没有赋给类new的变量,而返回变量?

ACV*_*ACV 10

谁告诉过你,你new做了什么呢?new创建一个对象并返回对该对象的引用.它没有为任何人分配任何东西,因为java中的赋值运算符是=

这是java教程的摘录:

new运算符通过为新对象分配内存并返回对该内存的引用来实例化一个类.new运算符还调用对象构造函数.

Java教程

  • 他的粗体陈述无效,因此他的问题也无效.特别是这部分不正确**并被分配给类类型的变量.** (2认同)

Aas*_*set 6

"创建一个类的实例并返回存储在内存中的对象地址"部分大部分都是正确的,除了它在技术上是Java自己对象位置的表示而不是实际的内存地址 - "引用"是一个更好的术语."将其分配给变量"部分根本相关new; 分配由=例如完成Class c = new Class().

如果您没有,则不=会将地址分配给任何地址.这通常是没有意义的,因为它等于抛弃新对象,但它是合法的,因为它有时是有用的(如果构造函数有一些你感兴趣的副作用).使用返回的引用new来调用方法也是合法的,例如new Class().doSomething(),或将其作为参数传递:doSomethingElse(new Class()).