참조

|

############### 복제 ##################

전자화된 시스템의 가장 중요한 특징은 복제다.

현실의 사물과 다르게 전자화된 시스템 위의 데이터를 복제 하는데는 비용이 거의 들지 않는다.

 

new로 생성하는 데이터들은 참조 자료(데이터)형이다!!!

 

int a = 1;

int b = a;

b = 2;

 

결과값은 : 1 (값을 변경한 것은 변수 b이기 때문에 변수 a에 담겨있는 값은 그대로이다. 변수 b의 값에 변수 a의 값이 복제된 것이다.)

############### 참조 ##################

복제 : 파일을 복사하는 것.

참조 : 원본파일을 참조하고 있는 것. 윈도우에서 바로가기파일(.ink)과 같은 원리. 바로가기파일은 원본파일의 주소값만 참조하고 있음. 저장 장치의 용량을 절약할 수 있고, 원본 파일을 사용하고 있는 모든 복제본이 동일한 내용을 유지할 수 있게 된다. 

 

int a = 1;

A a = new A(1);

 

전자는 데이터형이 int이고 후자는 A이다. int는 기본 데이터형(원시 데이터형, Primitive Data Types)이다. 자바에서는 기본 데이터형을 제외한 모든 데이터 타입은 참조 데이터형(참조 자료형)이라고 부른다. 기본 데이터형은 위와 같이 복제 되지만 참조 데이터형은 참조된다. new를 사용해서 객체를 만드는 모든 데이터 타입이 참조 데이터형이라고 생각해도 된다. (단 String은 제외다) 이를 그림으로 나타내면 아래와 같다.

 

정리하면 변수에 담겨있는 데이터가 기본형이면 그 안에는 실제 데이터가 들어있고, 기본형이 아니면 변수 안에는 데이터에 대한 참조 방법이 들어있다고 할 수 있다.

 

################## 참조 데이터 형과 매개 변수 ##################

매개변수를 다른 객체로 변경하는 것과 참조 데이터 타입의 매개변수에 담겨 있는 객체에 접근하는 것은 완전히 다른 의미를 가지기 때문에 두가지 경우의 차이점을 확실하게 이해하도록 하자.

'Java' 카테고리의 다른 글

Collections Framework  (0) 2019.06.15
제네릭  (0) 2019.06.15
상수와 enum  (0) 2019.06.12
Object 클래스  (0) 2019.06.12
예외 - 만들기  (0) 2019.06.10
And