「循環参照」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | + | 循環参照(英:circular reference)とは、ある複数の[[データ]]が相互に参照しあっている状態のことである。 | |
+ | |||
+ | 2つの[[データ]]が相互に参照するのみならず、何個ものデータが巡り巡って循環しているということも多々ある。 | ||
+ | |||
+ | また、[[自己参照]]も循環参照のひとつである。 | ||
== 概要 == | == 概要 == | ||
− | + | [[プログラミング]]において循環参照を適切に処理できなければ、たとえば[[シリアライズ]]を行うさいに[[永久ループ]]に陥り、[[アウトオブメモリー]](メモリ不足)や[[スタックマシン]]であれば[[スタックオーバーフロー]]が発生したりといったことになる。 | |
− | |||
− | |||
− | [[プログラミング]] | ||
また[[参照カウンター]]方式の[[ガベージコレクター]]を採用する[[プログラミング言語]]や[[実行環境]]では、循環参照により[[参照]]しあう[[オブジェクト]]は半永久的に参照カウントが減らないという問題に遭遇し、[[UNIX]]の[[デーモン]]や[[Windowsサービス]]、[[常駐プログラム]]のような長時間起動し続ける[[プログラム]]においてメモリー不足や[[スタックオーバーフロー]]が発生する。 | また[[参照カウンター]]方式の[[ガベージコレクター]]を採用する[[プログラミング言語]]や[[実行環境]]では、循環参照により[[参照]]しあう[[オブジェクト]]は半永久的に参照カウントが減らないという問題に遭遇し、[[UNIX]]の[[デーモン]]や[[Windowsサービス]]、[[常駐プログラム]]のような長時間起動し続ける[[プログラム]]においてメモリー不足や[[スタックオーバーフロー]]が発生する。 | ||
14行目: | 15行目: | ||
{|class="wikitable" | {|class="wikitable" | ||
|+ | |+ | ||
− | ! | + | ! !! A !! B |
− | ! A | ||
− | ! B | ||
|- | |- | ||
− | ! | + | ! 1 !! =A1 !! =B2 |
− | |||
− | |||
|- | |- | ||
− | ! | + | ! 2 !! !! =B1 |
− | |||
− | |||
|} | |} | ||
40行目: | 35行目: | ||
== 参考文献 == | == 参考文献 == | ||
− | + | <references/> | |
+ | |||
+ | == 外部リンク == | ||
{{stub}} | {{stub}} |