問題タブ [phantom-reference]

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.

0 投票する
6 に答える
2388 参照

java - ファントム参照オブジェクト

ファントム リファレンスは事後分析に役立ちます。Java 仕様では、ファントム参照自体が消去されるまで、ファントム参照オブジェクトの割り当ては解除されないと規定されています。

私の質問は次のとおりです。この機能 (オブジェクトの割り当てが解除されていない) はどのような目的に役立ちますか?

(私が思いついた唯一のアイデアは、ネイティブ コードがオブジェクトの事後クリーンアップを実行できるようにすることですが、あまり説得力がありません)。

0 投票する
4 に答える
7064 参照

java - ゴースト参照とは何ですか?

ゴーストリファレンスとは何だろう?オブジェクトを参照する必要がないということですか?編集:申し訳ありませんが、明確ではありませんでした。言語は Java で、リンクされたリストについて読みました。問題を読みながら、削除メソッドをサポートする LinkedQueue イテレータを記述します。次に、ゴースト参照があります。

0 投票する
2 に答える
3253 参照

garbage-collection - ファントム参照はどのように機能しますか?

APIドキュメントによると

この参照型は、オブジェクトへのアクセスに使用されることを意図していないという点で他の参照型とは異なりますが、オブジェクトがすでにファイナライズされており、ガベージコレクターがそのメモリを再利用する準備ができていることを示すシグナルとして使用されます。

ファントム参照を使用してオブジェクトにアクセスできない場合、ガベージコレクタはこのオブジェクトで使用されているメモリをどのように再利用しますか?

0 投票する
4 に答える
189 参照

php - $n = 2; 10-$n = 87

これは私がやっていることです:

出力は次のとおりです。

文字列として扱われていると思いますが、どうすれば修正できますか?

だから、私が知りたいの
は、(10-($total[1])); = 87?


更新:
はい、私の間違いです。ファントム 7 です
が、理由を教えてください。

出力: 6014359000000928 % 8 解像度: 7

0 投票する
4 に答える
21716 参照

java - Javaの参照クラスを理解する:SoftReference、WeakReference、およびPhantomReference

誰かが3つのリファレンスクラスの違いを説明できますか(または素敵な説明へのリンクを投稿できますか)?SoftReference>> 、しかし、私はいつそれぞれを使用しますかWeakReferencePhantomReferenceなぜあるのにWeakHashMapないのSoftHashMapPhantomHashMap

そして、次のコードを使用すると...

...何が起こるのですか?refすべてのステートメントの前にnullかどうかを確認する必要がありますか(これは間違っていますが、どうすればよいですか)?急いで質問して申し訳ありませんが、これらのReferenceクラスを理解するのに苦労しています...ありがとう!

0 投票する
4 に答える
552 参照

c++ - メンバー関数ポインターとファントム クラス

以前の質問に関連して、メンバー関数ポインターをいじっています。以下のコードでは、変数 (カウント) を変更するクラス (B) のメソッドを呼び出しますが、このクラスのインスタンスは作成しません。なぜこれが機能するのですか?

(申し訳ありませんが、このメンバー関数ポインターは私を悩ませています)

0 投票する
2 に答える
550 参照

android - ファントム コンタクト アカウントの出現 - Android

ユーザーが名前のリストから選択して、名前の1つ(電話番号など)を連絡先に追加できるアプリを作成しています。電話の連絡先アカウントのリストを取得すると、「電話」、「a000000229aa3e....」、「Gmail」の 3 つの結果が得られます。

中央の結果「a000000229aa3e....」は、私が設定したアカウントではなく、携帯電話の他の場所にも表示されます。これもエミュレータには表示されません。

私の同僚はヒット Droid (元の Droid) でそれを実行しましたが、奇妙なアカウントを取得しませんでした。Droid Xで実行しています。

この連絡先グループがどこから来ているか知っている人はいますか? これを除外するために何かする必要がありますか?


奇妙な連絡先アカウントの名前とタイプを取得できました。

0 投票する
1 に答える
1460 参照

java - Javaでのさまざまな参照型の使用

私は最近、Javaでソフト、ウィーク、ファントムの参照型を試してみましたが、まだ出会っていない用途があるのではないかと考えています。私は過去にそれらをさまざまな目的で使用しましたが、常に次のカテゴリに分類されています。

  • ファイナライザーの代わりにファントム参照を使用する-死んだオブジェクトが復活する可能性がないため、これが好きです
  • ハッシュマップで弱参照を使用してobject=>valueマッピングを保持します。ここで、マッピングは、オブジェクトが他の場所に存在する場合にのみ配置する必要があります(たとえば、ソースを作成できないライブラリ内のオブジェクトに追加情報を追加する必要がある場合に便利です。変更)
  • キャッシュにソフト参照を使用する(JVMはソフト参照をずっと長く保持し、必要と思われる場合にのみ解放するため、弱参照よりもはるかにうまく機能します)。

しかし、そこには3つの用途しかなく、私がこれまでに出会ったことのない、役立つかもしれないものがもっとたくさんあると思います。すべての提案を歓迎します!

0 投票する
3 に答える
822 参照

java - Java でファントム参照を使用した finalize メソッドのしくみ

こんにちは、ファントム参照について 1 つ疑問があります。私が理解しているのは、オブジェクトがガベージ コレクションに向かう直前に finalize メソッドが呼び出されることです。ただし、オブジェクトがガベージ コレクションの対象でない場合、finalize メソッドは実行されません。

この finalize メソッドが呼び出されるときのファントム参照について話します。

ファイナライズは常にファントム参照で呼び出されます。

私はこれについて非常に混乱しています。私を助けてください。

0 投票する
2 に答える
337 参照

java - 1つのコレクションに異なる参照型を混在させる

SoftReference、、はWeakReferencePhantomReferenceガベージコレクションのプロセスをカスタマイズするために使用できます。それらはすべて拡張Reference<T>されているため、1つのコレクションに混在させることができます。ハードリファレンス(最も一般的なもの)は拡張Reference<T>されないため、1つのコレクションにハードリファレンスと他のタイプのリファレンスを混在させることはできません。私は正しいのでCustomReference<T> extends Reference<T>、すべてのタイプのオブジェクトリンクを単一のコレクションに混合するという望ましい結果を達成するためにコレクションに入れる必要があります(Collection<Reference<T>>)?

更新:SSCCEを作成するときに、通常の方法で拡張することはできないことがわかりましたReference<T>(コンストラクターはパッケージローカルです)。

したがって、質問は次のように更新されます。単一のコレクションクラスを使用して、常に一部のオブジェクト(たとえば、10)を保持するキャッシュを作成し、メモリが許可されていない場合に他のオブジェクトをGCによって再利用できますか?ハード参照とソフト参照のカスタムラッパーを提供し、それらをコレクションに保存する以外に、これを行う他の手段はありますか?