2013-07-09 7 views
11

Java静的変数は、すべてのセッションで同じWebアプリケーションを使用して共有されていますか、または各セッションで静的変数の独自のバージョンが取得されていますか?Tomcat:Java静的変数スコープ、アプリケーションまたはセッションワイド?

別の言い方をすると、Tomcatはセッションごとに新しいクラスセットを作成するのか、Webアプリケーション全体に対して1セットだけ作成するのでしょうか?

+0

静的クラスレベル、彼らはクラスホルダーは、あなたが何を...彼らはオブジェクト – nachokk

+0

に属していないロードされている場合にのみ作成されますされていますセッションの意味ですか? HTTPセッション?これは単なるオブジェクトであり、静的変数/クラス読み込みとは関係ありません。 –

+0

私は彼らがセッションではなくリクエストを意味したと思う – malhal

答えて

14

Tomcatは、各Webアプリケーション(warファイルまたはコンテキスト)に対して1つずつClassLoaderを作成します。したがって、すべてClassがWebアプリケーション用に1回ロードされます。したがって、静的変数は複数のセッションと要求で共有されます。

参考文献:

3

静的変数はセッション全体で共有されます。 静的変数の使用には注意してください。