2

たとえば、ファクトリ メソッドの実装で、いくつかのクラスをそれぞれの静的初期化と共にロードする必要があります。

以下の構文を使用してクラスを参照するだけでは、JVM は静的初期化部分を実行しません。実際、JVM はクラスをロードしますか?

Class<Shape> shapeClass = Shape.class;
また
Shape s = null;

しかし、class.forname() を使用すると、静的な初期化が実行されます。 Class.forname("Shape"); 問題は、これが静的初期化とともに Java クラスをロードする唯一の方法かどうかです。それとも他の方法がありますか?class.forname() を使用するとパフォーマンスが大幅に低下しますか?

4

2 に答える 2