質問: Student.getInstance(100, "佐藤一郎"); } } ``` 実行結果 インスタンスの作成に成功! インスタンスの作成に成功! インスタンスの作成に成功! すでに作成されたインスタンスです
回答: このようなパターンでは、前提として、返されるインスタンスの値は、変更不可である必要があります。 目的は、他の方も指摘されておりますが、リソースの節約でしょうか。 呼ぶ側のニーズを考えると、既存のインスタンスがあれば、それを返すようにしないと、早いもの勝ちとなるので、システムが組めないかと。 速度の改善ですが、Listではなく、Mapを多重にすれば、それなりには改善するかと。 なお、クラス全体ではないですが、java.lang.StringのvalueOf()が、同じような考え方で実装されているかと思います。