ファイナライザとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ファイナライザの意味・解説 

デストラクタ

(ファイナライザ から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/01/07 17:57 UTC 版)

デストラクタ: destructor)は、オブジェクト指向プログラミング言語でオブジェクト(インスタンス)を削除する際に呼び出されて後処理などを行なう関数あるいはメソッドのこと。C++DelphiRustにおいてサポートされている。デストラクタは確実かつ安全なリソース管理を実現するための重要な役割を担う。




「デストラクタ」の続きの解説一覧

ファイナライザ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/06/28 21:23 UTC 版)

デストラクタ」の記事における「ファイナライザ」の解説

ファイナライザ (finalizer) は、ガベージコレクタを持つ言語において不要オブジェクト回収される前に自動的に呼び出されるメソッドである。 JavaRubyなどに存在するC++/CLIにはデストラクタとファイナライザの両方存在するC#にはファイナライザのみが存在するが、構文C++デストラクタ酷似しており、かつてはデストラクタ」と呼ばれていた。 デストラクタ違い、ファイナライザはオブジェクト不要になってもすぐには呼ばれるとは限らない不要になってから実際に回収されるまでの間に、いつか呼ばれるというだけである。それは不要になった直後かもしれないし、遙か後になるかもしれないさらにはメモリ十分な余裕があれば、オブジェクト回収されずファイナライザが永遠に呼ばれないということさえありうるこのようにいつ呼び出されるかわからない、呼ばれるかどうかすらわからないメソッドのため、確実に実行されなければならないような処理は一般的にファイナライザに任せることはできない。したがって、「ファイナライザによるRAII」は誤りである。ファイナライザで行えることは極めて限定されており、「リソース解放し忘れていないか確認し解放し忘れていれば解放するのようなフェイルセーフ的な利用法せいぜいである。リソース不要になった時点適切に解放されているべきであり、ファイナライザのチェック保険に過ぎない解放し忘れは本来はバグで、ファイナライザに頼る設計をしてはいけない。ファイナライザを誤って実装すると、脆弱性生じることもある。 以上のような不確実性加え、ファイナライザの利用ガベージコレクタ性能低下させることもあり、積極的に利用されるものではない。業務サーバーのような少々バグがあっても動き続けてなければ困るようなアプリケーションでは用いられることもある。 Java 9ではファイナライザが非推奨となった

※この「ファイナライザ」の解説は、「デストラクタ」の解説の一部です。
「ファイナライザ」を含む「デストラクタ」の記事については、「デストラクタ」の概要を参照ください。

ウィキペディア小見出し辞書の「ファイナライザ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ファイナライザ」の関連用語

ファイナライザのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ファイナライザのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデストラクタ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのデストラクタ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS