JAVAの値の参照を渡し、渡し

免責事項:この記事はブロガーオリジナル記事です、BY-SAの著作権契約、複製、元のソースのリンクと、この文を添付してくださいCC 4.0に従ってください。
このリンクします。https://blog.csdn.net/Norte_L/article/details/80250057

 

私はそれを理解する前に、ファジィ概念のソートは、Cのようなポインタが参照により渡されます。
基本的な理解及び参照種類
のJavaのデータ型は2つの基本タイプと参照型に分けられます。

1、元の値を保存する変数の基本的なタイプ、変数はデータそのものです。

    共通の基本的なタイプ:バイト、短い、int型、長い、char型、float型、ダブル、ブール、RETURNADDRESS。

図2は、参照型の変数は、基準値がこの基準値によって、オブジェクトのメモリ空間は、オブジェクトを操作する、いわゆる「第1のアドレス値」であり、基準値を保持します。

    共通の基準タイプ:クラスタイプ、インターフェイスタイプと配列。

第二に、送信の値と基準理解によって渡さ
1、値の転送

    メソッドの呼び出しでは、引数は、この転送処理の値は、関数に渡された引数のコピーであり、その実際のパラメータ値に渡されるように関数の値の場合(パラメータ値)操作は、引数の値には影響しません行われます。それが直接コピーされるので、ので、この双方向データ転送、大量の、動作効率が特に低くなります。

2、参照渡し

    過去のデータ転送、直接複合体の大量に、それはメモリ空間の多くを取るだろう、と参照渡し、値の転送の不足を補うために参照を渡し、受け取った関数は元の値の最初のアドレス過去に値によって渡されたオブジェクトのアドレスです値。実際にこの方法の実行は、パラメータと同じ内容のパラメータ、同じメモリアドレスへのポイント、すなわちソースデータの操作中に、この方法の実行は、実際のオブジェクトに影響を与えます。

例えば:

パブリッククラスの例{
文字列str =新しい文字列(「こんにちは」);
CHAR [] CH = { 'A'、 'B'}。
パブリック静的無効メイン(文字列[] args){
実施例EX =新しい例();
ex.change(ex.str、ex.ch)。
System.out.println(ex.str + "と");
System.out.println(ex.ch)。
}

公共ボイド変化(文字列str、CHAR [] CH){
STR = "OK"。
CH [0] = 'C'。
}
}
输出是。

こんにちは、

CB

プロセスの分析:

図1に示すように、オブジェクトに割り当てられたスペース

 

2、変更()メソッドの実装

引数(黒)及びパラメータ(赤)は、以下のように実行前のポイント:

 

Stringクラスは不変であり、値によって渡されるためCHは、[]は参照によって渡され、メソッドSTR =「OK」は、オブジェクトを再作成するために対応する引数STRの値を変更しない、参照によって渡される配列、ダイレクト変更、その方法は、以下の関係ポイントを実行した後:

 

3.おわりに
我々は以下の結論を引き出すことができます上記の分析を通して:

基本データ型の伝統的な値、パラメータ変更が引数に影響を及ぼさない、
参照基準タイプ、およびパラメータの引数が同じメモリ位置(同じオブジェクト)を参照して、パラメータの影響は、実際のオブジェクトに変更されます。
などの文字列、整数、特別な取り扱いのダブル不変の種類は、値によって理解されるように、最後の操作は、引数のオブジェクトを変更しません。

おすすめ

転載: www.cnblogs.com/dblb/p/11431447.html