-10
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();
    }
}

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

代替テキスト
(出典:c-sharpcorner.com

4

2 に答える 2

4

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

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

JVM仕様

これは、これについて非常に詳細に説明している以前のSOの質問へのリンクです(このトピックに関する言語に依存しないディスカッションです)。

これは、C#の問題を詳しく説明しているC#コーナーの記事へのリンクです。

于 2009-09-13T07:51:31.843 に答える
1

注文と顧客は山積みです。Customerは構造体である可能性がありますが、参照型(クラスなど)の構成メンバーです。

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

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

intiTotal変数はスタック上に作成されます。

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

于 2009-09-13T07:52:13.387 に答える