S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

思わぬトリックw

下記のプログラムで、改めてヒープとGCぬるぽの関係を思い知らされたw
オブジェクトとしては参照できなくなっても、スレッドとしてはexecuteメソッドを実行し続けるという状況になってる。
スレッドがオブジェクトを参照している、という状態にはならないらしいな。

package hoge.fuga;
public class Test {
    private int value;
    public static void main(String[] args) {
        new Test().execute();
    }
    public void execute() {
        this.value = 1;
        for ( … ) {
            if (this.value == 1) {    // NullPointerException
                …
            }
      …(そこそこ時間がかかって、ヒープを利用する処理)
        }
    }
}