2017-09-28 3 views
0

Javaでは、メソッドパラメータが参照で渡されたように動作することがあります。 どのような方法で渡されますか?Javaでは、メソッドパラメータが参照で渡されたように動作することがあります。彼らはどのような方法で渡されたのですか?

私はjavaが常に価値によって渡されていることを知っています。しかし、それは参照渡しのように動作する可能性があります

+0

参照変数(クラスの通常のインスタンス)を見ては、オブジェクトではなく、オブジェクト自体のメモリアドレスを格納します。したがって、オブジェクトをパラメータとして渡すと、このメソッドは変数の 'アドレス'をコピーします。それが参照渡しのように見える理由です。 – March3April4

+1

https://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value?rq=1 私はこれを見て参考になると思う。 – March3April4

答えて

-1

Javaのようにメソッドに渡されたすべてのオブジェクトは、パラメータが(不変である文字列を除いて(それは参照によって渡されるようにそれが見えた)値によって参照することができない渡して、値によって参照を渡し変更する)。 他のすべてのプリミティブは値渡しされます。

値によって渡される不変オブジェクトを処理する必要がある場合は、メソッドに渡す前に最初にクローンを作成するか、渡された参照を無視してメソッド内の参照を変更する必要があります。

詳細については、このnice example

関連する問題