Javaでのパラメータの受け渡し(値の受け渡しのみ、参照の受け渡しはなし)
参照変数の属性値を変更できるのはなぜですか?以下の答えをご覧ください。
#java のデータ型
Java のデータ型は、基本型と参照型の 2 つのカテゴリに分類されます。これに対応して、変数も基本型と参照型の 2 つの型に分類されます。 基本型変数は元の値を保存します。つまり、それが表す値は値そのものです。参照型変数によって保存される値は参照値であり、「参照」 value" はメモリ空間のアドレスを指し、オブジェクト自体ではなく、オブジェクトへの参照を表します。オブジェクト自体は、参照値で表されるアドレスに格納されます。 基本的なタイプには、byte、short、int、long、char、float、double、Boolean、returnAddress が含まれます。 参照型には、クラス、インターフェイス型、配列が含まれます。Java には値の転送しかありません
日常のコーディングでは、次のような現象がよく見られます:1. 基本的な型パラメータの場合、メソッド内 本体内でパラメータを再割り当てしても、元の変数の値は変更されません。 2. 参照型パラメータの場合、メソッド本体内のパラメータへの参照を再割り当てしても、元の変数が保持する参照は変更されません。 3. パラメーターは、元の変数の値を変更せずにメソッド本体内で操作されます。 4. 参照型パラメータの場合、メソッド本体はパラメータが指すオブジェクトのプロパティを操作し、元の変数が指すオブジェクトのプロパティ値を変更します。 例:public class Main { private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){ b = true; boo = new Boolean(true); arr[0] = true; } //测试 public static void main(String[] args) { boolean b = false; Boolean boo = new Boolean(false); Boolean[] arr = new Boolean[]{false}; getMiddleOne(b, boo, arr); System.out.println(b); System.out.println(boo.toString()); System.out.println(arr[0]); /** * output: * false * false * true */ } }
次の 2 点を理解していれば、上記の現象に答えることができます:
1. 基本的なデータ型value は値そのものなので、例の b の値は false です。ラッパー クラスが自動的にボックス化およびボックス解除するため、基本型と同じように処理できるため、例の boo の値は false です。 ; 配列は参照型なので、 arr 値は Boolean[] への参照です。 2. Java では、値の転送のみが行われ、参照の転送は行われないため、getMiddleOne メソッドに渡される 3 つのパラメーターは、b の値のコピー、boo の値のコピー、および arr の値のコピーです。 上記の 2 点から明らかですが、getMiddleOne メソッドで実行される b=true と boo = new Boolean(true) は、そのコピーに新しい値を代入するため、元の変数の値は変わりません。 ; 同様に、arr[0] = true は、arr のコピーが指す配列の最初の要素に true をコピーします。arr の値と arr のコピーの値は両方とも配列への参照であるため、コピーarr が指す配列と arr が指す配列は同じであるため、arr がコピーした配列の要素を変更すると、元の変数 arr にも影響します。概要
Java では、値のみが渡されます。基本型は値のコピーを渡し、参照型は参照のコピーを渡します。以上がJavaでのパラメータの受け渡し(値の受け渡しのみ、参照の受け渡しはなし)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです

Java での日付までのタイムスタンプに関するガイド。ここでは、Java でタイムスタンプを日付に変換する方法とその概要について、例とともに説明します。

カプセルは3次元の幾何学的図形で、両端にシリンダーと半球で構成されています。カプセルの体積は、シリンダーの体積と両端に半球の体積を追加することで計算できます。このチュートリアルでは、さまざまな方法を使用して、Javaの特定のカプセルの体積を計算する方法について説明します。 カプセルボリュームフォーミュラ カプセルボリュームの式は次のとおりです。 カプセル体積=円筒形の体積2つの半球体積 で、 R:半球の半径。 H:シリンダーの高さ(半球を除く)。 例1 入力 RADIUS = 5ユニット 高さ= 10単位 出力 ボリューム= 1570.8立方ユニット 説明する 式を使用してボリュームを計算します。 ボリューム=π×R2×H(4
