Stringクラスの知識の統合

まず顔の質問に今
の質問に直面している
文字列A = "AB";
= "" + "B"列B、
SYSOUT(A == b)の
答えは、それは真か偽?
さんが一緒にプロセスを分析してみましょう
あなたは、変数を作成するときに、定数プールはABは、その後、スペースにアドレスを割り当てるストレージスペースで開かれます。
Bの変数が作成されると、コンパイラが自動的に+操作、Bの同等の結果のうち==「AB」、JVMは、まず定数プール、変数bに割り当てられたオブジェクトのアドレスを直接参照、したがって定数プールを指しているBとアドレスの同じ部分があるか否かを決定する。このとき、そう答えが真であります。
2つの顔の質問
列A = "AB&";
; B =新しい新しいString文字列( "AB&")
SYSOUT(== b)は
維持するための変数として、問題作成
新しいString(文字列)モードを使用して文字列を作成するには、時間bを、定数プール、コピーにスタック、およびb点ヒープアドレスが存在する場合は、定数プールは、定数プールに新しいものを存在し、山にコピーしていない場合は、そして、b点のパイルアドレス。だから、定数プールBと文字列の値が同じものではないために指摘し、答えはfalseです。

おすすめ

転載: blog.51cto.com/14380904/2406261