
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> メモリ不足でGCが起動したというイベントを受け取りたい
GC は、メモリ不足になったから起きるとは限りませんが、とりあえず、GC を
きっかけにして何かの処理をやりたいのだったら、その処理を finalizer に
記述したクラスを new して、参照を持たないようにしておけば、捕まえられる
んじゃないでしょうか?
class 処理用のクラス {
protected void finalize() throws Throwable {
/* やりたい処理 */
new 処理用のクラス; /* 参照を持たないインスタンスを生成して次回に備える */
}
}
class メインのアプリケーション {
public static void main(String args[]) {
new 処理用のクラス; /* とりあえず、参照を持たないインスタンスを生成 */
/* 実際の処理 */
}
}
ってな感じで。インスタンスの開放と同時に finalizer が呼ばれる保証がない(はず)
のが玉に傷ですが。
> GCにインスタンスを開放するように直接インスタンスを渡す方法はないでしょうか
参照されていないインスタンスが GC の対象になるわけですから、インスタンスを
参照している変数全てに null を代入すればいいでしょう。
即、GC を起動したいのであれば、System.gc() を使えば良いですね。
# 動作を確認したわけではないので、一応、自信無しとしておきます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
JDONWROADER2のエラー修復
-
googleスプレッドシートのスク...
-
googleスプレッドシートのGASに...
-
JAの支部?地域の農協のカード...
-
「main メソッドを持つクラスが...
-
jdk17.06のインストーラーが起...
-
eclipse実行ができない
-
結果的につかあなかったけど
-
配列にnullを代入すると、null...
-
eclipseで作ったプログラムを他...
-
スプレッドシートからリマイン...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
googleスプレッドシートのGASに...
-
「main メソッドを持つクラスが...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
JSFタグのfタグとは
-
スプレッドシートからリマイン...
-
Processingでマウスクリックで...
-
eclipse実行ができない
-
eclipseで作ったプログラムを他...
-
次のhtml・cssでspan内の文字を...
-
プログラミングのプの字も知り...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
googleスプレッドシートのスク...
おすすめ情報