[解決済み] Javaにデストラクタはありますか?
質問
Javaにデストラクタはありますか?これに関するドキュメントが見つからないようです。もしないのであれば、どうすれば同じ効果を得ることができるのでしょうか?
私の質問をより具体的にするために、私はデータを扱うアプリケーションを書いています。仕様書には、アプリケーションを起動したばかりの元の状態に戻す「リセット」ボタンがあるべきだと書かれています。しかし、アプリケーションを閉じたり、リセットボタンを押したりしない限り、すべてのデータは「ライブ」でなければなりません。
普段はC/C++のプログラマーなので、これは簡単に実装できるだろうと思いました。(リセット可能な」オブジェクトはすべて同じクラスにして、リセットボタンが押されたときに「生きている」オブジェクトをすべて破壊できるようにプログラムを構成しました。
もし、データの参照を解除してガベージコレクタが回収するのを待つだけだったら、ユーザーが繰り返しデータを入力してリセットボタンを押しても、メモリリークが発生しないのではと思ったのです。また、Javaは言語としてかなり成熟しているので、これを防ぐ方法、あるいは潔くこれに取り組む方法があるはずだとも考えていました。
解決方法は?
Javaはガベージコレクション言語なので、いつ(あるいはいつ)オブジェクトが破棄されるかを予測することはできません。したがって、デストラクタに直接相当するものはありません。
という継承されたメソッドがあります。
finalize
しかし、これは完全にガベージコレクタの判断で呼び出されます。そこで、明示的に整理整頓をする必要があるクラスでは、慣習として
閉じる
メソッドを使用し、finalize はサニティチェックのためにのみ使用します。
閉じる
が呼び出されていない場合は、今すぐ呼び出してエラーを記録してください)。
がありました。 という質問があり、finalizeについて深く議論されました。 最近、このようなことがありましたので、必要であれば、より深い内容を提供できるはずです...。
関連
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】Eclipseで「パッケージエクスプローラー」ビューが見つからない
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】HTTPステータス 405 - リクエストメソッド「POST」はサポートされていません (Spring MVC)
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】Android java.lang.IllegalStateException: Android java.lang.IllegalStateException: Could not execute method of the activity
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】keytoolエラー 鍵屋が改ざんされたか、パスワードが不正確だった場合
-
[解決済み】破損したjarファイル
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み] [Solved] java.lang.NoClassDefFoundError: クラスXXXを初期化できませんでした。
-
[解決済み] なぜfinalize()を実装する必要があるのでしょうか?