セッターを使用して別のPOJOクラスBのNフィールドにデータを入力し、POJOを呼び出し元に返すメソッドを含むクラスAを含む本番環境で使用されている既存のコードベースがあり、クラスBのすべてのインスタンスが2つのフィールド、つまりN-2フィールドは、クラスBのすべてのインスタンスで同じになります。クラスAにクラスBへの静的参照があり、静的で変更されないクラスBのフィールドを初期化すると、パフォーマンスが向上します。初期化ブロック?このように、各呼び出しでクラスBのN個のフィールドにデータを入力していたクラスAのメソッドは、異なる2つのフィールドのみにデータを入力する必要があります。これにより、クラスAのメソッドを呼び出すたびにタイプBの新しいオブジェクトを作成する必要もなくなります。マルチスレッドアプリケーションでのこのアプローチの意味は何ですか。
あるいは、静的として変更されないクラスBのすべてのフィールドを宣言して、クラスAのメソッドが呼び出しごとに変更されるフィールドのみを設定するようにすることもできます。いずれにせよ、パフォーマンスの向上はそれだけの価値がありますか、それともこの変更は時期尚早の最適化と見なされますか?
例 :
class A {
private static B b = new B();
static {
b.setSystem("MySystem");
b.setVersion("1.1");
}
public B getB(String name) {
b.setName(name);
return B;
}
}