私はいくつかの実装と少し混乱しています。これが私の問題です。
- 2 人のユーザーがシステムにログインできます。(ユーザー A、B)
- 異なるユーザー名とパスワードで同時にログインする
Employee
クラスにはstatic
変数呼び出しがあると仮定しますage
ユーザー A が age の値を 45 に変更し、その後、ユーザー B が age の値を 28 に変更してから、両者が変更を保存します。
では、A と B の実際の値はどうなるでしょうか?
ありがとうございました
私はいくつかの実装と少し混乱しています。これが私の問題です。
Employee
クラスにはstatic
変数呼び出しがあると仮定しますage
ユーザー A が age の値を 45 に変更し、その後、ユーザー B が age の値を 28 に変更してから、両者が変更を保存します。
では、A と B の実際の値はどうなるでしょうか?
ありがとうございました
このシナリオでは、A と B には年齢がありません。Employee
クラスには年齢があります。static フィールドは、クラスのインスタンスではなく、クラスに関連付けられています。したがって、Employee.age
フィールドの値は 28 になります。
静的メンバーの詳細については、Java チュートリアルを参照してください。
まず第一に、「age」は静的変数ではなくインスタンス変数にする必要があります。静的変数は、クラスのすべてのインスタンスで共有されます。
あなたが示した例では、クラスタ化されていない環境で作業していると仮定すると、最後の設定値は「固執する」ものです(つまり、同じ仮想マシンでインスタンス化されたクラスでシャティック変数が共有されます)。
静的変数には、それを使用している 各オブジェクトによって共有されるコピーが 1 つだけありますが、インスタンス変数には、オブジェクトごとに異なるコピーがあります。
あなたの場合、変数は静的であるため、変数の最初の値は45です
その後、値 28で上書きされます。