값에 의한 호출 vs 참조(값의 주소)의 의한 호출을
사실 자바가 전자인지 후자인지는 더 검색해서 이해해야할것 같다.
//간단한 예제 a 를 2함수에 넣는다고 가정하자.
int a = 1;
ChangeValue( a ){
System.println.out("value of a : " + a )
}
ChangeValue( aCopy ){
aCopy = 12;
}
============================================
결과는 value of a = 1;
stack 에 a = 1 이라고 저장되고 aCopy는 12 라고 저장된다.
call by value
그리고
Animal animalObj = new Animal( );
ChangeValue( animalObj ){
animalObj.eyes = 2
}ChangeValue ( Animal animalObjCopy ) {
animalObjCopy.eyes =12;
}
이러면 eyes는 12 로 저장된다.
Passing memory address itself 참조하는 주소값이 변하면서 참조되는 2변수다 영향을 준다.
참조형의 == 는 주소를 비교하고
기본형의 == 은 값을 비교한다
자세한 내용: https://bcp0109.tistory.com/360
일단은 개인적인 생각은 :
The Value and Value of Reference 이기 때문에 Call by Value 라는것이다. 결국 참조하는것도 주소값이기 때문에 Value라고 한다.
더 좋은 예를 가져오겠습니다. 일단 대기요