以下の内容はhttps://tondol.hatenablog.jp/entry/20081002/1222879470より取得しました。


ObjectOutputStreamでOutOfMemoryErrorな件

public void send(Object obj) throws IOException {
    objectOutStream.writeObject(obj);
    objectOutStream.reset();
}

ObjectOutputStreamは一度writeObjectしたオブジェクトを内部テーブルにキャッシュして保持しつづける仕様らしい。なので,同じオブジェクトを変更してwriteObjectしても一番最初に書き込んだオブジェクトが書き出されてしまう。また,キャッシュされたオブジェクトはGCで開放されないので,OutOfMemoryを回避するためには明示的にキャッシュをクリアする必要がある。ObjectOutputStream#resetを呼び出すことですべて解決。うまくオブジェクトが書き出されない不具合も,メモリ消費が激しい不具合も一挙に解消した。そういう大切なことはJavaDocに太字で書いておくべききっとそうすべき。

プレゼン発表前日の貴重な数時間を返してください。




以上の内容はhttps://tondol.hatenablog.jp/entry/20081002/1222879470より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14