私はローカル変数がjavaのスタックに格納されていることを知っています。しかし、2つのint変数にjavaの同じ値が与えられたときのスタック上のメモリ割り当てに関してはどうなりますか(それらはどう関係していますか)?書き込みセマンティックにコピーはありますか?それはどうしたらうまくいくのですか?Javaで2つのint変数に同じ値が与えられた場合、(メモリに関して)どうなるでしょうか?
答えて
明白な答えはint x=5; int y=5;
がのみ例外はあなたのケースでは、y
に関連付けられていたメモリはそれがx
の場合と同様に同じに見えるだろう、ということでとint x=5; int y=6;
と同じにしていることです。すなわちx
とy
は、そのうちの一つが値を変更するまでメモリの同じ部分を割り当てられている -
それは書き込みセマンティック上コピーのいくつかの種類が使用されているJVMを想定することは困難です。私が知る限りでは、は、Java言語仕様で許容されているように、ですが、int
としてはあまり使用されません。書き込み時に設定するオーバーヘッドは、となります。は、はじめから。
(興味深いことに、C++ std::string
クラスに対してはコピーオンライトのセマンティクスを書くことができましたが、C++ 11ではそれが許可されていません)。
==演算子は参照を比較しています同じオブジェクトが参照されていれば真です。 intの場合、==演算子はどのように機能しますか? –
@AyushN:プリミティブ型では、値が比較されます。 –
間違いなくスタックに変数を作成します。値5を保持します。 他の方法はありません。
どれ変数グローバル/ローカル、原始的/非プリミティブ店いくつかの値
プリミティブ値のためにあなたがタイプに応じて割り当てるものは何でもいくつかあります。
非プリミティブ値はヒープ内のオブジェクトのメモリアドレスですが、最終的には両方とも値を保持し、他のいくつかの変数が同じかどうかを調べません。
- 1. 2つの変数値が同じ場合、同じメモリを共有していると言われます
- 2. 同じアドレスの場所はどのように2つの異なる値を与えますか?
- 3. 私がiTunesを変更した場合どうなるのでしょう?
- 4. どうして私は2つの異なる列の合計値が同じになるのですか
- 5. 月が同じ場合、2つの同じ値を入力しないようにするにはどうすればよいですか?
- 6. 2つの異なるクラスを同じリストに入れたほうがよいでしょうか?
- 7. 同じ内容の2つのJavaクラス(関数、変数など)
- 8. 同じ定義を持つこれらの2つの関数に、より一般的な型を与えるにはどうすればよいですか?
- 9. 2つの数値が与えられている場合、それぞれが等しい場合の最小のセットを見つけよう
- 10. なぜhprofファイルはjvmに与えられるメモリ量よりもはるかに小さいでしょう
- 11. Django "login()はちょうど1つの引数(与えられた2つ)"エラーを返します。
- 12. 同じコードから与えられた2つの異なるGPS位置
- 13. バイト配列とintに大きい数値で同じ値を与える
- 14. リストに与えられたパラメータ値が含まれているかどうかをチェックする関数
- 15. アクターが失敗した場合、リモートアクターに添付されたメールボックスはどうなるでしょうか?
- 16. C#2つの変数が同じ型の場合どう比較するのですか?
- 17. JavaでExecutorServiceを宣言した後にシャットダウン句が見つからない場合どうなるでしょうか
- 18. VSPackageを再起動しました。ちょうどロードされている場合と同じです。
- 19. 同じ値の2つの文字列がどのようにメモリに格納されていますか?
- 20. 誰かが私に説明して、なぜ次のような結果を得られるのでしょうか?ウェブサイトで与えられた
- 21. 同じページで2つの選択が1つしかない場合(第2)
- 22. CUDA:異なるワープからの2つのスレッドで、同じブロックが同じSHAREDメモリ位置に書き込もうとしました:危険ですか?
- 23. 私に与えられたオブジェクトがJavaのint []であるかどうかを確認するにはどうすればよいですか?
- 24. 2つのリストの同じ場所に同じ値があるかどうかを確認する
- 25. --verboseフラグがオンになっている場合、どうすればわざとなのでしょうか?
- 26. どのようにして、同じメソッド/関数から2つの変数をlaravel 5.4の1つのビューに返すことができますか?
- 27. 2つのオブジェクトが衝突した場合、どのように変数を変更できますか?
- 28. 同じリストで2つのマップを融合するにはどうしたらいいですか?
- 29. 同じサイズの2つのnumpy配列が与えられた場合、同じ位置にある各要素のペアを2つずつどのように適用するのですか?
- 30. 第2のテーブルが第1のテーブルの外部キーである場合、(記述内の)与えられたコードは交差するでしょうか?
したがって、宣言された変数が異なるため、それぞれ4バイトのメモリが割り当てられます(SIMPLEはABCと同じです)。 –
2つの変数はメモリ内の2つのスロットを意味します。スタックには、メソッドを入力するときに割り当てられます。行単位ではありません。 –
==演算子は参照を比較し、同じオブジェクトが参照されている場合は真です。メモリスロットが異なる場合、intの場合==演算子はどのように動作しますか? –