0

このコードには、値で初期化した int があります。ここで、この参照を別の変数に作成し、新しい値を割り当てます。しかし、これは他の変数に反映されるべきです。しかし、そうではありません。この Java 参照がどのように値渡しされるか。文字列は不変ですが、これが整数でどのように起こるか

public class Confusedwithintegerandstrings 
{

public static void main(String[] args) 
{
    
    int a=10;
    int c=a;
    System.out.println(c);
    a=20;
    System.out.println(a);
    System.out.println(c);
    
}

}

これはO/Pです

10

20

10

4

1 に答える 1

3

実際、タイトルと質問が一致しませんでした。

Java は常に値渡しです。これはプリミティブの正しいステートメントです。ここで Object について混乱が生じます。

この例を考えてみましょう (オブジェクト)

someObject = someOtherObject

ここで参照を割り当てながら、割り当てsomeOtherObject られ someObjectた値が参照です。

ここで、この参照を別の変数に作成し、新しい値を割り当てます。

aandcはオブジェクトではなくプリミティブであるため、参照の問題はありません。

これを行うと

 int c=a;  // value of a copied to c

オブジェクトだけが参照を持っています。プリミティブはオブジェクトではありません。

役立つかもしれません:Javaは「参照渡し」または「値渡し」ですか?

于 2013-12-07T11:49:03.837 に答える