Web/java
[Java] 자바 기본형 vs 참조형
개발자 쿠키
2022. 7. 13. 23:00
기본형
int, long, double, boolean처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형 이라고 한다.
참조형
Student student1, int[] students와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.
참조형은 실제 객체의 위치(참조, 주소)를 저장한다. c언어의 포인터개념을 생각하면 된다.
객체는 .(dot)을 통해 생성된 객체를 찾아가야 사용할 수 있다.
배열은 []를 통해 메모리 상에 생성된 배열을 찾아가야 사용할 수 있다.
String
string은 참조형이다. 그런데 기본형처럼 문자 값을 바로 대입할 수 있다.
메서드 호출
자바는 항상 변수의 값을 복사해서 대입한다.
기본형 : 메서드 내부에서 매개변수의 값을 변경하면 호출자의 변수 값에는 영향이 없다.
참조형 : 메서드 내부에서 매개변수로 전달된 객체의 멤버 변수를 변경하면, 호출자의 객체도 변경된다.
기본형 변수는 null을 할당할 수 없지만, 참조형 변수는 null을 할당할 수 있다.
기본형은 사용하는 값을 복사해서 전달하고, 참조형은 참조값을 복사해서 전달한다.
실제 인스턴스가 복사되는 것이 아니라, 참조값을 복사해서 전달하는 것이다.