私は、文字列プールへのニーズのための主な理由だと思います
文字列プールエリアは、特別な記憶領域法(方法エリア)です。文字列と文字列がプール内に作成されている場合、文字列への参照ではなく、文字列を再作成するので、変数に直ちに戻され、その後、変数への参照が返されます。文字列は不変でない場合、(例:string2の)参照を変更すると、別の参照(例:文字列1)の文字列になります古いデータを持っています。
多くの人々は、スレッドセーフなマルチスレッド、私が思うに、これは不可解であるときので、インターネットがあると言います
public class Test {
private final String TAG = "Test";
private String value = "hello";
public void test1() {
new Thread(new Runnable() {
@Override
public void run() {
value = "test1";
Log.e(TAG," value=" + value);
}
});
}
public void test2() {
new Thread(new Runnable() {
@Override
public void run() {
value = "test2";
Log.e(TAG," value=" + value);
}
});
}
}
上記のコードでは、TEST1は、TEST2が2つのスレッドを実行して、この値は、不確定の時間の値は、文字列は不変であるか否か、あります