質問

public class Order
{
    static Customer cust = new Customer();
    string sEmpty = "";

    public static void main(String args[])
    {
        int iTotal = 10;
        string sProductName = "Salt";
        Ship shp = new Ship();
    }
}

上記のコードでは、どのオブジェクトと参照がメモリのどの部分に作成されますか? (つまり、ヒープとスタックを意味します)

 alt text
(source: c-sharpcorner.com

役に立ちましたか?

解決

質問にJavaのタグを付けたので、Javaを意図していると思います。馬の口からまっすぐ:

  

Java仮想マシンには、すべてのJavaで共有されるヒープがあります   仮想マシンのスレッド。ヒープは   実行時データ領域   すべてのクラスインスタンスのメモリ   配列が割り当てられます。

JVM仕様

これは、前のSO質問へのリンクです。これは真剣に詳細に説明されています(また、このトピックに関する言語に依存しない議論です)。

C#コーナーの記事へのリンク C#での問題の詳細。

他のヒント

注文と顧客はヒープ上にあります。顧客は構造体である場合もありますが、参照型(クラスなど)の構成メンバーです。

すべての文字列は参照型であり、ヒープ上に作成されます。

Shipクラスについては、その宣言がないのでわかりません(つまり、構造体かクラスかはわかりません)。

int iTotal変数がスタック上に作成されます。

これはC#に当てはまります。 Javaにはさまざまなルールがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top