0

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

と同じ

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

それで、PrintWriter は閉じますか?

4

2 に答える 2

1

いいえ、どちらも同じケースではありません

あなたの質問の2番目の例では、 pw.close() が実行されるとすぐに PrintWritter が閉じます。その間

あなたの質問の最初のケースでは、printwriter はすぐには閉じられません。--> new PrintWriter(ExampleStream).print() を呼び出した後、そのオブジェクトへの参照がないため、この同じオブジェクトを再度使用することはできません。つまり、ガベージ コレクターによって削除される資格があることを意味します。ガベージ コレクターがいつ実行されるかはわかりません。そのため、このオブジェクトがいつ削除されるかはわかりません。心に留めておくべきもう 1 つの重要なことは、このオブジェクトがガベージ コレクターによって削除される可能性がありますが、そのプロセスは pw.close() と同じではないということです。

于 2016-08-14T16:17:09.980 に答える
1

いいえ。

技術的には、Java の匿名という用語は、名前のないローカル クラスを作成することを指します。あなたがしたことは、変数に割り当てずにクラスのインスタンスを作成することです。

于 2016-08-14T15:37:20.830 に答える