私はローカル変数が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. どうして私は2つの異なる列の合計値が同じになるのですか
- 4. 私がiTunesを変更した場合どうなるのでしょう?
- 5. 2つの異なるクラスを同じリストに入れたほうがよいでしょうか?
- 6. 2つの数値が与えられている場合、それぞれが等しい場合の最小のセットを見つけよう
- 7. 同じ定義を持つこれらの2つの関数に、より一般的な型を与えるにはどうすればよいですか?
- 8. Django "login()はちょうど1つの引数(与えられた2つ)"エラーを返します。
- 9. なぜhprofファイルはjvmに与えられるメモリ量よりもはるかに小さいでしょう
- 10. バイト配列とintに大きい数値で同じ値を与える
- 11. 同じコードから与えられた2つの異なるGPS位置
- 12. C#2つの変数が同じ型の場合どう比較するのですか?
- 13. アクターが失敗した場合、リモートアクターに添付されたメールボックスはどうなるでしょうか?
- 14. VSPackageを再起動しました。ちょうどロードされている場合と同じです。
- 15. JavaでExecutorServiceを宣言した後にシャットダウン句が見つからない場合どうなるでしょうか
- 16. 同じページで2つの選択が1つしかない場合(第2)
- 17. 同じ値の2つの文字列がどのようにメモリに格納されていますか?
- 18. 誰かが私に説明して、なぜ次のような結果を得られるのでしょうか?ウェブサイトで与えられた
- 19. 私に与えられたオブジェクトがJavaのint []であるかどうかを確認するにはどうすればよいですか?
- 20. 同じサイズの2つのnumpy配列が与えられた場合、同じ位置にある各要素のペアを2つずつどのように適用するのですか?
- 21. 同じリストで2つのマップを融合するにはどうしたらいいですか?
- 22. 与えられた時間に関数値として変数を宣言 - ない関数自体
- 23. 2つのツリーが与えられた場合、同じ値で同じ値に整理されたノードが構造的に同一であればtrueを返します。
- 24. Java関数変換は、以下の方法で与えられ、kotlinするためにいくつかのJavaコードを変換しようと
- 25. 2つのUShorts間の操作はVC2015にintを与えますか? Visual Studioにコンパイルした場合
- 26. ラムダ式の変数の値はどのように与えられますか
- 27. 整数とターゲットの配列が与えられている場合、2つの要素の合計がターゲットになる場合はtrueを返します。
- 28. どのようにして1つのメイト関数がソリューションに収束するのでしょうか?
- 29. 2つのjavascript関数が同じように機能しない
- 30. 2つのIPが同じネットワークにある場合のJavaでのテスト
したがって、宣言された変数が異なるため、それぞれ4バイトのメモリが割り当てられます(SIMPLEはABCと同じです)。 –
2つの変数はメモリ内の2つのスロットを意味します。スタックには、メソッドを入力するときに割り当てられます。行単位ではありません。 –
==演算子は参照を比較し、同じオブジェクトが参照されている場合は真です。メモリスロットが異なる場合、intの場合==演算子はどのように動作しますか? –