코딩조각

[java] java는 항상 변수의 값을 복사해서 대입한다

밍튜 2023. 12. 7. 11:03

 

 

변수의 값을 복사해서 넣는다는 말이 무슨말일까???

 

위에서 int num1 = 5라고 먼저 선언했다

 

다음으로 int num2 

 

바로 num1의 값을 복사해서 num2에 넣었기때문에

num1과 num2의 값은 아무 상관관계가 없다.

 

따라서 num1은 5, num2는 10을 넣어준 마지막 코드때문에 num2 = 10이 된다

 

다음 코드를 보면 더 이해하기 쉬워진다

 

 

1. changeNumber 호출 전 , num1:  5 이다

 

2. changeNumber 변경 전, num2는 changeNumber(num1)에서 받은 5값이 인수로 받아서 5가된다

 

3. changeNumber 변경 후, num2는 위에 코드 num2 = num2 * 2에서 파라미터 num2가 5로 받아서 왔기때문에 num2 =5*2가 되고 따라서 num2 = 10이 들어가서 10이 출력된다.

4. changeNumber 호출 후, num1은 값만 복사해서 갔기때문에 num2와는 아무상관이없어서 원래의 num1값인 5가 출력된다.

 

4번에서 바로 java의 대원칙인  'java는 항상 변수의 값을 복사해서 대입한다'가 성립된다.