변수의 값을 복사해서 넣는다는 말이 무슨말일까???
위에서 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는 항상 변수의 값을 복사해서 대입한다'가 성립된다.
'코딩조각' 카테고리의 다른 글
[Spring] 엔티티 설계시 주의사항 (2) | 2024.01.02 |
---|---|
[java] static 메서드 사용법(주의점) (0) | 2023.12.11 |
[Docker] docker Got permission denied while trying to connect to the Docker daemon socket 에러 해결하기 (0) | 2023.11.07 |
[Collection]왜 HashMap선언을 Map<String, Object> map = new Hashmap<String,Object>(); 로 선언할까? (1) | 2023.11.02 |
[web] Dynamic IP와 Static IP (0) | 2023.03.14 |