問題タブ [string-pool]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ランタイム定数プールの場所
String オブジェクトはヒープに格納されます。例えば:
s1
オブジェクトはヒープに格納されます。
文字列リテラルは、文字列定数プールに格納されます。
s2
オブジェクトは文字列定数プール (おそらくヒープ内) に格納されます。
runtime constant poolについて聞いたことがあります。
しかし、そこに具体的に何が保存されるのかわかりません。文字列定数プールと同じですか?または、実行時定数プールに格納するために何を書く必要がありますか?
java - 複数の文字列を連結すると、いくつの文字列オブジェクトが作成されますか?
特定の問題で作成されるオブジェクトの数についてインタビューで尋ねられました。
私は、文字列プールに6 つのオブジェクトが作成されると答えました。
3 は、3 つの変数のそれぞれに対応します。
1はstr1 + str2
(としましょうstr
)用です。
1 はstr2 + str3
.
1 はstr + str3
(str = str1 + str2
) です。
私が出した答えは正しいですか?そうでない場合、正しい答えは何ですか?
java - 新しく作成された文字列はどこにありますか? ヒープメモリまたは文字列定数プール?
Java のように、
文字列が格納される場所は 2 つあります。その作成に応じた文字列リテラル プールとヒープ メモリ。文字列の割り当てが別の文字列に行われると、新しく作成された文字列はどこに保存されるのでしょうか?
ヒープと文字列プールにある両方のタイプの文字列に対して割り当て操作を実行しました。このような結果になりました。
でもいつ、
さて、こうしたら
同様に、
今、
上記は、IDE で取得した出力です。この出力によると、strNew の新しい参照オブジェクトが文字列プールに作成され、strNewH の新しい参照オブジェクトがヒープに作成されます。それが正しいか?