3

Java に次のコードがあるとします。連絡先は名前と番号から作成され、電話帳は連絡先の配列から作成されます。

//set -> このメソッドは本当に新しいメモリの場所をコピーして作成するのか、それとも単にメモリを指すだけなのか?

public void setContact(Contact[] contact)
{
    this.contact =  contact; // <----this
}

ありがとう。

4

2 に答える 2

2

配列はオブジェクトであり、Java ではオブジェクト参照は値によって渡されます。したがって、このメソッドを呼び出すとthis.contact、引数として渡された連絡先配列への参照のコピーが作成されます。配列要素のコピーは作成されません。配列のコピーは作成されません。

于 2012-10-21T15:15:44.467 に答える
0

これを使用すると、スタックからヒープにあるオブジェクトへの参照を設定します。つまり、オブジェクトはヒープにあり、参照はスタックにあります

new キーワードのみを使用すると、ヒープ内のスペースを取得する新しいオブジェクトを取得できます

于 2012-10-21T15:24:47.433 に答える