0

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

如同

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

那么 PrintWriter 会关闭吗?

4

2 回答 2

1

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

在您的第二个示例中,问题 PrintWritter 将在 pw.close() 执行时立即关闭。尽管

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

于 2016-08-14T16:17:09.980 回答
1

不。

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

于 2016-08-14T15:37:20.830 回答