1. ホーム
  2. java

新しい整数とvalueOfの比較

2023-10-25 08:46:27

質問

私は ソナー を使っていることを指摘されました。 new Integer(1) の代わりに Integer.valueOf(1) . というのも、どうやら valueOf は新しいオブジェクトをインスタンス化しないので、よりメモリに優しいと思われるからです。どうすれば valueOf は新しいオブジェクトをインスタンス化しないのでしょうか?どのように機能するのでしょうか?これはすべての整数に当てはまりますか?

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

Integer.valueOf は、値のキャッシュを実装しています。 -128 から +127 . Java言語仕様の5.1.7節の最後の段落で、ボクシングの要件(通常は .valueOf メソッドで実装されています)の要件を説明しています。

http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.1.7