2011-12-09 5 views
3

私はString.valueOf(int)がキャッシュを有効にし、余分なオブジェクトを作成しないことがあることを知っていますが、("" + 1)はコンパイラの最適化を取得していますか?intをStringに変換するにはどのようなメソッドを使用しますか?

どちらを使用する必要がありますか?

EDIT:String.valueOf(int)は、キャッシュを有効にしません。Integer.valueof(int)はキャッシングを有効にします。

答えて

5

"" + 1私の意見では悪い習慣であり、私が知っている限り、どのような方法でも最適化されていません。

String.valueOf(int)と貼り付けます。

+0

さて、私は彼らがこれを既に最適化していると思っていました(私がこれを読んだ場所は確認できません)。 –

0

これらはどちらも同等であり、より個人的な好みの問題です。個人的には、私はString.valueOf(int)を好む。

0

暗黙のものよりも明示的な変換を選択します。

String.valueOf(int)は正確に何をしているかを示します。

私はInteger.toString(int)を使用しますが、これはプリミティブinttoStringメソッドとして読んでいるためです。

5

いいえ、String.valueOfはキャッシングを実行しません。しかし、あなたがしたいことがあるので、よりも"" + 1(キャッシュも実行しません)です。

"" + 1文字列の連結と空の文字列について、どちらもあなたの目的とは何も関係していません。整数の値を得るにはStringです。

String.valueOfはあなたがしたいことを正確に示しているので、それを使用してください。

0

を使用すると、アプリケーションに最適です。

""+iが最適です。時間とリソースが制限されたデバイスがない限り、時間を節約することはCPU時間のマイクロ秒を節約するよりも貴重です。

関連する問題