問題タブ [finalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - ユニットがメモリからアンロードされる前にオブジェクトを解放しなくても大丈夫ですか (ファイナライズ セクション)?
プロセスは OS によって強制終了され、割り当てられたすべてのメモリはとにかくリサイクルされるため、ユニットのファイナライズ セクションでオブジェクト/リソースを解放しなくても問題ありませんか?
例えば、
c# - ファイナライズとジェネレーション 1 への昇格
私の質問は、ジェネレーション 0 にオブジェクトがあり、ファイナライズ メソッドもオーバーライドしたことです。
gc が gen0 を収集すると、ファイナライズする必要があることがわかり、すぐに解放せず、これらのオブジェクトを gen1 に昇格させますか? したがって、これらは gc が gen1 を収集する場合にのみ解放されます。これらのオブジェクトが再び使用されないと仮定すると、それらはガベージです
ありがとう!
gcc - コンパイル エラー GNU Fortran - ファイナライズ
GNU コンパイラを使用して大きなコードをコンパイルしようとしています。ただし、添付のコードを GNU Fortran (GCC) 6.1.0 でコンパイルしようとすると、型を使用する一部のルーチンでfn_grid_nodes_t次のエラー メッセージがスローされます。
@bld .. リンク中 ... アーキテクチャ x86_64 の未定義シンボル:
"___final_fn_core_grids_dts_Fn_grid_nodes_t.3665"、参照元: fn_depot_utils.o の ___fn_depot_utils_MOD_fn_clean_depot
Intel コンパイラ > 15.0 を使用すると、コンパイルが成功することに注意してください。GNU と Intel がファイナライズを処理する方法が原因であると思われます。
これに関する提案/回避策はありますか?
ご回答ありがとうございます - 追加の詳細:
- OS = MacOS シエラ 10.12.1
- コンパイル: Makefile
- フラグ: -g -Wall -Wextra -fbacktrace -fbounds-check -fcheck-array-temporaries
- 最適化: -O2
モジュールのコンパイル例:
問題の原因となっているメイクファイルの一部:
fn_depot_common.mod にはモジュール fn_core_grids_dts が含まれていることに注意してください。欠落しているモジュールが必要な場所に含まれていないことに関連する問題ではありません。
java - null キューを持つ PhantomReference
Java は次のように書くことができます:
この場合new Object()は回収されますか?
私が理解しているように、ファントム参照はfinalize() メソッド使用の代替です。
そして、キューに参照が表示された後、いくつかの追加アクションを実行してから実行する必要がありますclear()
Java doc はそのままです:
null キューを使用してファントム参照を作成することは可能ですが、そのような参照はまったく役に立ちません。その get メソッドは常に null を返し、キューを持たないため、キューに入れられることはありません。
エンキューされない場合はどういう意味ですか?
私が理解しているように、メソッドの呼び出しを終了した後、参照が referenceQueue に追加されないことを意味します。
1. オブジェクト メモリがすぐにクリアされる2.
オブジェクト メモリがクリアされない
どの場合が正しいですか?
