2017-04-21 8 views
0

この質問をする主な理由は、文字列がどのように異なる言語でどのように認識されるかという点での主な違いです。私はC++のバックグラウンドを使い、現在はJavaで作業していますが、Stringは不変です。だから私は知って興味深いものになるだろう文字列m = ""と文字列m = nullの初期化の違い。

String m = "" ; 

String n = null ; 

との違いを知りたいと思った場合は、特別に、Javaのメモリ位置へのm個の点のポインタ?

+0

最初のものは 'String'オブジェクトを' m'に割り当てます。第二はしません。 –

+0

""は空のオブジェクトですか? –

+2

空の文字列はまだ文字列です。 –

答えて

0
String m = null ; 

はオブジェクトを参照しません。

String m = "" ; 

はオブジェクトを参照します。

+0

私は混乱を避けるために、それらをOPの順番に並べます。 –

0

""で初期化すると、文字列に値が割り当てられます。ただし、nullとして初期化すると、実際にはnull以外の値が指し示されます。最終的に、文字列メソッドは最初のもの(equals、length、replaceAll、...)で使用できますが、2番目の文字列メソッドは使用できません。

+1

が編集されました。ありがとう! –

関連する問題