こんにちは、スタックオーバーフローに関するこの質問を読み、例を実行しようとしました。
私は以下のコードを持っていました:
public static void main(String[] args){
int i = 5;
Integer I = new Integer(5);
increasePrimitive(i);
increaseObject(I);
System.out.println(i); //Prints 5 - correct
System.out.println(I); //Still prints 5
System.out.println(increaseObject2(I)); //Still prints 5
}
public static void increasePrimitive(int n){
n++;
}
public static void increaseObject(Integer n){
n++;
}
public static int increaseObject2(Integer n){
return n++;
}
increaseObject
参照の値がその関数内で変化しているため、出力は 5 ですか? 私は正しいですか?なぜincreasedObject2
6ではなく5を印刷するのか混乱しています。
誰でも説明できますか?