기본형 대입
Int a = 10;
Int b = 10;
a라는 변수에 들어 있는 실제 사용하는 값인 10일 복사해서
b라는 변수에 10을 대입한다.
참조형 대입
Student s1 = new Strudent();
-> Student s1 = x001;
Student s2 = s1;
s1은 참조값인 x001을 복사해서
s2변수에 참조값 x001을 대입한다.
참조형의 경우 실제 사용하는 객체가 아니라
객체의 위치를 가리키는 참조값만 복사된다.
위의 예시에서 s1,s2변수들은 객체가 생성된 메모리의 참조값만 가지는 것이다.
중요한 것은 자바에서는 call by value 라는 것
변수의 값을 복사해서 대입한다는 것을 잊으면 안된다.
메서드 호출시에는?
메서드 호출도 마찬가지이다.
메서드를 호출할 때 사용하는 매개변수(파라미터)도 결국 변수일 뿐이다. 따라서 메서드를 호출할 때 매개변수에 값을 전달하는 것도 값을 복사해서 전달한다.
대원칙은 자바에서는 항상 변수에 대입을 할 때는 값을 복사해서 전달한다는 것이다.