ホームページ  >  記事  >  値渡しと参照渡しの違い

値渡しと参照渡しの違い

(*-*)浩
(*-*)浩オリジナル
2019-12-10 11:50:2418337ブラウズ

値渡しと参照渡しの違い

値の転送はメソッド内の基本データ型の転送を指し、参照転送はメソッド内の参照データ型の転送を指します。

たとえば、以下のプログラム コードに示すように: (推奨学習: Web フロントエンド ビデオ チュートリアル )

値渡しと参照渡しの違い

注: int は基本データ型に属しているため、メソッド内で渡したり参照したりする場合、変数の値は変更されません

And arr配列に属しており、参照データ型なのでメソッドが参照される際に実際に渡されるのはヒープメモリ上の配列の物理メモリアドレスであり、メソッド内の配列に対する操作は内部の値に影響を与えます配列と変更

理由:

Javaでは、基本データ型をパラメータとして渡すことを値渡しといい、値そのものが渡されます。

値の受け渡し: 値 このメソッドでの変更はローカル変数の変更です

メソッドが終了すると効果がありません (メソッドで渡される基本データ型はローカル変数です)

Java では、メソッドのパラメータと参照データ型は物理メモリ アドレスの値で渡されます。メソッド内で配列内の値が変更されると、配列の物理メモリ アドレスが渡されます。は変更されていないため、main メソッドに戻っても、配列は元のアドレスを指したままになります。

メモリ内の arr 配列のアドレス値が渡されると、ヒープ メモリ内の連続したアドレスが変化し、配列全体に影響を与える可能性があります。

特殊なケース: 文字列 / 基本データ型パッケージ化クラス 。これらはすべて参照データ型ですが、パラメータが渡されると、値も渡されます

以上が値渡しと参照渡しの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。