Java 在不创建对象的情况下调用类

Java 在不创建对象的情况下调用类,java,object,new-operator,Java,Object,New Operator,我知道,当我们创建一个类的对象时,会有内存分配,如下所示: 测试t=新测试(); t、 方法1() 但我也可以按如下方式调用mehtod1: 新测试().method1() 那么,在调用method1的第二种方法中,是否分配了内存。因为很明显我不是在这里创建对象 谢谢您的问题的答案是是。代码newtest()创建了一个对象,它恰好是Test类的一个实例。内存在堆上为您创建的每个对象分配,无论您是否将其分配给变量 当然,就像堆上的所有内存一样,只要范围中的任何地方都没有对该对象的引用,该内存就可以

我知道,当我们创建一个类的对象时,会有内存分配,如下所示:

测试t=新测试(); t、 方法1()

但我也可以按如下方式调用mehtod1:

新测试().method1()

那么,在调用method1的第二种方法中,是否分配了内存。因为很明显我不是在这里创建对象


谢谢

您的问题的答案是是。代码
newtest()
创建了一个对象,它恰好是
Test
类的一个实例。内存在堆上为您创建的每个对象分配,无论您是否将其分配给变量


当然,就像堆上的所有内存一样,只要范围中的任何地方都没有对该对象的引用,该内存就可以用于垃圾收集。如果未将其分配给变量,则表达式
new Test()
创建的引用一经使用就会超出范围。这意味着内存可能会很快被垃圾回收。但它肯定是分配的。

显然您正在创建一个对象。您只是没有将其分配给变量,但构造函数上的新调用同样会创建一个对象。
new
操作符分配内存,而您仍然使用
new
。如果它没有分配内存,您认为
这个
引用了
method1
方法中的哪些内容?您调用的不是类,而是类的方法。在不创建对象的情况下可以调用的唯一方法是静态方法。