1. ホーム
  2. java

Javaにおけるステートレスオブジェクトとは?

2023-08-04 03:29:58

質問

現在、私は "Java concurrency in practice" を読んでいますが、その中にこの文章が含まれています。

ステートレス・オブジェクトにアクセスするスレッドの動作が、他のスレッドの動作の正しさに影響を与えることはないため、ステートレス・オブジェクトはスレッドセーフである。

では、ステートレス・オブジェクトとは何でしょうか?

どのように解決するのか?

ステートレス・オブジェクトとは、インスタンス・フィールド(インスタンス変数)を持たないクラスのインスタンスのことです。クラスは はフィールドを持つが、それらはコンパイル時の定数(static final)である。

非常によく関連する用語として 不変 . Immutableオブジェクトは状態を持つことができますが、それはメソッドが呼び出されたときに変わることはありません(メソッドの呼び出しはフィールドに新しい値を割り当てません)。また、これらのオブジェクトはスレッドセーフです。