2012-01-23 4 views
-2

toLong()new Long(String)の違いを教えてもらえますか?両者のパフォーマンスに違いはありますか?文字列の変換に新しいLong()の代わりにtoLongを使用すると問題が発生する

例:String str="1236";

Long val=str.toLong();

OR

Long val=new Long(str);

1がより良い使い方ですし、私に違いを与えますか?

+5

Javaのどのバージョンで 'String.toLong()'が表示されますか? – adarshr

+3

String.toLong()が存在する場合は、そのjavadocが何をするかを示します。しかし、この方法は存在しません。 http://docs.oracle.com/javase/6/docs/api/java/lang/String.htmlを参照してください。 –

+0

Long.parseLong(String)を意味します。 –

答えて

2

(Javaの文字列はtoLong()メソッドを持っていないので、私は、あなたがGroovyで意味を前提と...)

カバーの下に差がないので、同じコードが使用されます。

まだ興味がありますが、私は強くにあなた自身で確認するための迅速なタイミングテストを書くことをお勧めします。

0

これは128以下の値をキャッシュして再利用するので、Long.valueOf(...)を使用してください(私は推測します)。

0

String#toLong()メソッドはありません。

しかしの代わりにLong#valueOf(String)が使用されます。これは、JVMがキャッシュして値を再利用できるためです。

+0

ちょうどチェックして、それは文字列引数を取るバージョンがキャッシュされた値を使用していないようだ... – quaylar

+0

ああはい...私はちょうどjavadocを見て、それはあなたが正しいことを疑うことができます.. 'Integer'と同じように見えます(他のものをチェックしませんでした)。まあ、今日何か新しいことを学んだ。ヒントのためのThx! :) – hage

0

String.toLong()はありませんが、新しいLong(String str)と同じことをしているLong.valueOf(String str)があります。