「共有による呼び出し」という用語を使用しないことをお勧めします。このウィキペディアの記事には次のように記載されています。
「しかし、「共有による呼び出し」という用語は一般的に使用されていません。用語はさまざまなソース間で一貫していません。たとえば、Java コミュニティでは、Java は値渡しであると言われていますが、Ruby コミュニティでは、彼らは2 つの言語が同じセマンティクスを示しているにもかかわらず、Ruby は参照渡しであると言います[要出典]. 共有による呼び出しは、言語の値がプリミティブ型ではなくオブジェクトに基づいていることを意味します。
と
「この用語は Python コミュニティで広く使用されていますが、Java や Visual Basic などの他の言語での同一のセマンティクスは、多くの場合、値がオブジェクトへの参照であることが暗示される値渡しとして説明されます。」
肝心なのは、Java は「共有による呼び出し」を使用しているということです... しかし、彼らはそれをそう呼んでいません。
Call-by-Sharing と Call-by-Reference の違いは、マルチスレッドの場合だけだと思います。他のスレッドで使用されている間、値の同時上書きを減らすためにのみ作成されます。一貫性を提供します。私は正しいですか?
いいえ、あなたは正しくありません。
値がオブジェクト参照である場合、「共有による呼び出し」は実際には「値による呼び出し」を意味します。真の「参照による呼び出し」とは、(事実上) 変数のアドレスを渡していることを意味し、呼び出されたメソッドは変数を更新できます。