Java での finalize() の別の使用法 JAVA プログラミングを行ったことがある人なら誰でも、JAVA にガベージ コレクター メカニズムがあることを知っています。実行中 (通常、システム メモリが特定の制限に達すると自動的に実行されます) は、使用されなくなったオブジェクトによって占有されているメモリをリサイクルします。そのため、JAVA プログラムでは、通常、オブジェクトの作成のみを考慮し、オブジェクトのクリアについては考慮しません。 。 Finalize() は、JAVA がクラス用に提供する特別なメソッドです。
ガベージ コレクターの作業プロセスは大まかに次のとおりです。ガベージ コレクターは、不要なオブジェクトによって占有されているストレージ領域を解放する準備ができると、最初にそれらのオブジェクトの Finalize() メソッドを呼び出し、次に実際に再利用します。オブジェクトの記憶。 Finalize() を使用すると、ガベージ コレクターの実行中に特別な作業を実行できます。次の例は、finalize() の賢い使い方を示しています。
現在、商用アプリケーションシステムではWEB形式を採用するシステムが増えています。 WEB 型アプリケーションでは、各ページへのアクセスは独立しており関連性がなく、複数のユーザーが同時にアプリケーションの同じページにアクセスしたとしても、ユーザー同士はお互いを知りません。現在システムを使用しているユーザーを確認したい場合はどうすればよいでしょうか (たとえば、データ バックアップの復元やシステム アップグレードの実行の準備をしているとき、システム管理者はこの情報を知りたいと考えています)? サーブレットおよび Jsp テクノロジに基づく WEB サーバーは、次のことを行います。 hidden これには Session オブジェクトと Application オブジェクトが含まれており、開発者が一部の情報を継続的に保存および共有するのに役立ちます。ユーザーが WEB アプリケーションにアクセスすると、WEB サーバーは自動的に Session オブジェクトを作成し、ユーザーはこれを使用してセッション中にアプリケーションのすべてのページのデータを共有できます。Application は WEB アプリケーションのグローバル オブジェクトです。 Session オブジェクトと Application オブジェクトを使用すると、すべてのユーザー情報を追跡するという目的を達成できます。
ユーザーがブラウザを開いてWEBアプリケーションのログインページへのリクエストを開始すると、WEBサービスは顧客向けにセッションを作成し、その後セッションのタイムアウト時間内に顧客はこのセッションを利用します。 (タイムアウト時間は、Tomcat サーバーが各アプリケーションの web.xml ファイルで設定されるなど、設定できます)。 IEブラウザを使用する場合、SessionはクライアントIPアドレスとクライアントプログラムのプロセスIDで識別される接続と対応関係があり、同一IPアドレス、同一プロセスのWindows(IE-ファイル-新規で開いた新規ウィンドウなど) -Window) には同じ A セッションがあるため、セッションを使用してそれぞれの独立したクライアント アプリケーション接続を識別できます。
以下は例です。
処理を容易にするために、まずユーザー情報を表現する単純なクラス (user) を作成し、sessionId:
package com; public class user { public String name=""; public String sessionId=""; }
別のクラス ( testSession) は、システムが現在接続しているユーザー情報を追跡できるように、ユーザーのログイン、ログアウト、その他のアクション情報を処理するために使用されます。
package com; import java.util.Vector; import com.user; public class testSession { public user User; private Vector vsid; public testSession() { User=new user(); } public boolean verify(String username,String password) throws Exception //验证用户/密码 { return true; } public void setSessionVar(String sesid,Vector sid) { this.User.sessionId=sesid; this.vsid=sid; } private static synchronized void addappses(user puser, Vector pvsid) { //记录一个新连接的用户 int pos=-1; user l_user; if (puser==null || pvsid==null) return; for(int i=0;i l_user=(user)pvsid.get(i); if(l_user.sessionId.equals(puser.sessionId)){ pos=i; break; } } if(pos==-1){ pvsid.add(puser); } else{ pvsid.set(pos,puser); } } private static synchronized void removeappses(user puser, Vector pvsid) { //移除一个退出的用户 int pos=-1; user l_user; if (puser==null || pvsid==null) return; for(int i=0;i l_user=(user)pvsid.get(i); if(l_user.sessionId.equals(puser.sessionId)){ pos=i; break; } } if(pos!=-1){ pvsid.remove(pos); } } protected void finalize() { this.removeappses(this.User,this.vsid); } public boolean login(String username) throws Exception { //处理登录 this.User.name=username; this.addappses(this.User,this.vsid); return true; } public boolean logout() throws Exception { //处理注销 this. finalize(); this.User=null; this.vsid=null; return true; } }
各ユーザーは、ユーザーの情報を保存するために testSession オブジェクトを作成します。クラスtestSessionを記述するためには、別のファイルlogintest.jspを同時に導入する必要があります。たとえば、この JSP ファイルは、ログインおよびログアウト処理のための単純なインターフェイスを提供します。ファイルの内容は次のとおりです:
以上がJavaのfinalize()メソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。
