hatakeのブログ

社会人ひよこプログラマのtil

Java

匿名クラスをシリアライズするときの奇妙な挙動について

TL;DR 非staticのコンテキストで宣言された匿名クラスはエンクロージングインスタンスへの非transientな参照を持つ 匿名クラスでオブジェクトの初期化 Javaでは匿名クラスと初期化ブロックを組み合わせて以下のような書き方ができます。 User user = new Use…

Javaからexeを起動したらデッドロックしてしまった話

TL;DR 下記の条件をすべて満たすとデッドロックします。 呼び出されるexeが標準出力や標準エラー出力に何か書き込むプログラムを持つ ProcessBuilder.start()やRuntime.exec()の後に何もせずProcess.waitFor()する 解決策はProcessが持つストリームのバッフ…