検索

ホームページ  >  に質問  >  本文

java - ヘルプ: 次のコードを詳しく分析してください。混乱しています。

パブリック クラス T1 {

リーリー

}
私の理解: rename メソッドの
aa はスタック メモリにあり、main メソッドの aa はヒープ メモリにあります。rename メソッドを実行しても、main メソッドの aa は変更されません。それ、そうですよね?

阿神阿神2750日前713

全員に返信(3)返信します

  • 迷茫

    迷茫2017-05-17 10:01:16

    値による呼び出しは、最も一般的に使用される評価戦略です。関数の仮パラメータは、呼び出し時に渡される実際のパラメータのコピーです。仮パラメータの値を変更しても、実際のパラメータには影響しません。

    参照によって呼び出された場合、関数の仮パラメータは、コピーではなく実際のパラメータへの暗黙的な参照を受け取ります。これは、関数パラメータの値が変更されると、実際のパラメータも変更されることを意味します。同時に、両方とも同じ値を指します。

    Java コア テクノロジ (I) では、まず、基本型の場合、関数はその値を変更して別のオブジェクトを指すことができないと述べました。したがって、すべて値渡しされます。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-17 10:01:16

    いいえ、関数内の aa は新しいアドレスを指しており、外部の aa は依然として「BB」のアドレスを指しているため、結果は BB になります

    返事
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-17 10:01:16

    この関数は、値を渡すときに MAIN 関数で AA を渡さず、AA の値のコピーを作成してから渡します

    返事
    0
  • キャンセル返事