2

私はJava/ガベージコレクションされた言語に不慣れですが、オブジェクト参照を持つことの意味についてまだ頭を悩ませています(ポインターではないと言われているためですか?)ので、この質問について考えています:

親/子オブジェクト構造があり、親にはそれぞれ複数の子のリストがいくつかあります...各子に親へのポインタがないという非効率性やその他の理由はありますか?私の以前の言語(Delphi)では、それは単純なポインターだったので、まったく問題ありませんでした。Javaでのこの方法に関する考慮事項はありますか?

4

4 に答える 4

3

ここでは問題はないはずです。技術的にはそうです。Java参照はポインターではありませんが、ほとんどの問題については、同様に考えることができます。オブジェクト参照は、Javaのヒープ内の場所を指す整数です。したがって、格納される追加の場所ごとに1つの追加の整数になります。一般的に言えば、適度に小さい。

オブジェクト管理に関しては、(一般的には!)Javaを信頼して正しいことを行うことができ、ガベージコレクションやオブジェクト参照の動作の複雑さについてあまり心配する必要はありません。

于 2012-07-16T18:40:39.710 に答える
2

私が知っていることから、あなたはそれをやっても大丈夫だと思います。Javaはあなたのゴミをきれいにするのに良い仕事をします、そして私は通常子供たちのクラスに「親」フィールドを持っています。

于 2012-07-16T18:40:31.060 に答える
1

以前の回答が述べたように、一般的にGCは物事を片付けるのにかなり良いです。あなたの主な関心事は、あなたが活動を離れた後も持続するものであり、文脈を保持します。これにより、親子ツリーにない参照があるため、アクティビティはメモリに残ります。

詳細はこちら

于 2012-07-16T18:46:19.493 に答える
1

参照型(強い、弱い、ファントム、ソフト)についても読んでおくと、役立つと思います。また、GCがどのように機能するか(さまざまな世代-若い/サバイバースペースと古い世代)、使用するガベージコレクター、および指定できるGCパラメーターについても確認してください。

于 2012-07-16T18:47:04.003 に答える