没有分配给变量的 PrintWriter 在使用后会关闭吗?

Will a PrintWriter without assignment to a variable close after using?

new PrintWriter(ExampleStream).print("Just Something");

PrintWriter pw = new PrintWriter(ExampleStream);
pw.print("Just Something");
pw.close();

那么PrintWriter会不会关闭?

没有

从技术上讲,Java 中的术语匿名指的是创建一个没有名字的本地 class。您所做的只是创建一个 class 的实例,而没有将其分配给变量。

不对,他们不是同一种情况

在你的第二个例子中,问题 PrintWritter will get close immediately on the moment pw.close() will get executed.而

在你的第一种情况下,printwriter 不会立即关闭。调用后 --> new PrintWriter(ExampleStream).print() 由于您没有对其对象的任何引用,因此您不能再次使用同一个对象,这意味着它有资格被垃圾收集器删除。因为我们不能说垃圾收集器什么时候会 运行 这就是为什么不能确定什么时候会删除这个对象。要记住的另一件重要的事情是,即使垃圾收集器可能会删除此对象,但该过程与 pw.close()

不同