참조와 복제 /+static접근
1)New로 생성하는 데이터들은 참조데이터형이다!! (알아두자)
a가2일까 1일까?

당연히 1이다
a=1 에 들어있는 1이라는 값을 복제한 후에 b라는 변수에 담은 것
b안에 1이라는 것을 2로 바꿔도 기존의 a에 있는 1의 원본값은 바뀌지 않는다


ㅎㅎ복사본의 내용을 바꿔도 ㅎㅎ원래 메모장의 내용은 바뀌지 않는다
2)
* 기본데이터 타입을 담을 수 있는 변수 값과 기본데이터 타입이 아닌 new를 통해서 만든 데이터 타입 a는 다르게 동작한다
기본데이터는 내부적으로 복제가 일어나서 b값을 바꿔도 a복제한 값을 바꾸는 것임( 위 참고)

*빨간색 글 참고:
a의 인스턴스가 변수에 저장되는 것이 아니고 컴터 어딘가에 만들어지고 변수a는 클래스a의 인스턴스 위치에 대한 정보를 가지고 있음
참조(reference) : 구체적인 값을 가지는게 아니고 메모리 어딘가에 저장이 되어있고 이 변수는 그 인스턴스를 구별할 수 있는 주소값만을 가지고 있는 것
즉 참조값만을 가지고 있는 것임( a를 수정하면 A인스턴스를 수정한 것이고 b가 가르키는 인스턴스를 수정한 것과 같은 의미)

ㅎㅎ와 ㅎㅎ바로가기 내용을 바꾸면 서로 같이 적용이 된다

전체적인 코드
3)참조와 복제 비교
기본데이터형: 위의 내용처럼 만약 복제를 한다면 100G 메모장을 복사 복사한다면 개수당 3개 = 300G되는데
참조형: 참조한다면 아무리 많이 바로가기를 만들어도 100G 메모장 하나가 된당 (메모리 적게 사용함)
4) 메소드의 매개변수와 참조,복제
위의 예제를 조금 변형해보자

a와 b는 다른 인스턴스를 가르키고 있어서 b의 값을 아무리 바꿔도 a의 값은 안바뀐다
결과값:
runValue, 1
runReference, 1
위의 내용 모아서 최종정리!!



