「循環参照」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

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

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: