は、以下のJavaコードを考慮:DataInputStream closeは、ガベージコレクションの際にInputSreamをラップしますか?
void test(InputStream inputStream) {
DataInputStream dataInputStream = new DataInputStream(inputStream);
return;
}
test
メソッド戻り、DataInputStreamのは(いつか)ごみ収集されます。 DataInputStreamはファイナライザで内部ストリームを閉じますか?
明示的なステートメントが見つからない場合は、それを見つけることができませんでした。行動に関する公式の文書はありますか?あなたは1つがある場合はポイントしてくださいできますか?
ありがとうございました。
編集: DataInputStreamを閉じても内部ストリームも閉じられるかどうかは問いません。私は閉じていないと外側のストリームが生ゴミ収集されているインナーはまだそれを参照しているので、生きているかどうかを尋ねています。
@tunaki OPは、GCファイナライザのためにストリームが明示的にクローズコールなしで閉じられるかどうかを尋ねました。そのようなファイナライザがないので、答えはノーです。 – wero
@weroはい、それは私が尋ねるものです。 「そのようなファイナライザはありません」はどこかに書かれていますか?実装固有か必須かは仕様によって決まりますか?すべてのリンク?ありがとう。 – volkan
@Volkanは、単に 'DataInputStream'のソースを見て、階層を処理します。ファイナライザはありません。ファイナライザを持つ 'java.io'の唯一のクラスは' FileInputStream'と 'FileOutputStream'です。その文書がどこにあるのかわからない。 – wero