私のJavaの本では、「10000 Rationalオブジェクトを変数に保存せずに割り付けてゴミにする」という練習があります。変数を変数に保存せずにオブジェクトを割り当てる方法は?
オブジェクトを割り当てることなくオブジェクトを割り当てることができますか?正しいだ
for (int i = 0; i < 10000; i++) {
new Rational();
}
おかげ
私のJavaの本では、「10000 Rationalオブジェクトを変数に保存せずに割り付けてゴミにする」という練習があります。変数を変数に保存せずにオブジェクトを割り当てる方法は?
オブジェクトを割り当てることなくオブジェクトを割り当てることができますか?正しいだ
for (int i = 0; i < 10000; i++) {
new Rational();
}
おかげ
は、各Rational
を参照せずにインスタンス化され、したがって、その後のある時点でガベージコレクションされています。 Javaにガベージコレクションを強制する方法はありませんが、Runtime.gc()
に電話してガベージコレクションをリクエストすることができます。
ご協力いただきありがとうございます – user1296058
コンストラクタに参照を保持するなどの副作用がないことを条件として、true。
class Rational {
static final List<Rational> IRRATIONAL = new ArrayList<Rational>();
Rational() {
IRRATIONAL.add(this);
}
static Iterable<Rational> allRationals() {
return IRRATIONAL;
}
}
for (int i = 0; i < 10000; i++) {
new Rational();
}
for(Rational r: Rational.allRationals()) {
// all still here
}
あなたは奇妙な本があります。 –
... 10 000オブジェクト?チェック。彼らはRationalですか?チェック。それを割り当てた?チェック。割り当てられていない?チェック。あなたは仕事を正しく完了したように見えます。しかし、私は@ChristianMannに同意する - あなたの本はRationalオブジェクトではない:-) – Imp
本のタイトル/著者は何ですか? – Java42