次のコードでは、ループ内で複素数をある角度だけ回転させ、結果の数値が最初の数値と同じであることを確認します。
public class Complex {
private float r, i;
...
public Complex(Complex other) {
r = other.r;
i = other.i;
}
}
Complex z1 = new Complex(..);
Complex z1_save = new Complex(z1);
Complex z2 = new Complex();
Complex k = new Complex();
k.set_to_first_root_of_unity(8);
int n = 64;
while(n-- != 0) {
z1.multiply(k, z2);
z1 = new Complex(z2); // Line Y
}
Assert.assertEquals(true, z1.equals(z1_save));
public Complex(Complex other)
Javaではなくコンストラクタを使用してLine Yを記述しclone()
、64個のオブジェクトがガベージコレクションされないことを確認する方法はありますか?
更新: 対話型アプリケーションのコンテキストを参照せずに、単純化した方法でこの質問をすることは不可能のようです。現在の質問 (assylias の) に対する最良の答えは、90% の確率でオブジェクトの作成とガベージ コレクションについて心配する必要はないということです。再描画中は、常に 100% 心配する必要があります。私はここで質問を言い直しました。