
Heap 영역에 저장되어 있기 때문에 참조형 변수는 데이터가 저장된 메모리 주소를 가리킨다.Heap 메모리 주소Person personA = new Person("Steve"); // ✅ 객체가 담긴 personA 는 참조형 변수입니다.
Syetem.out.println(personA.name);
System.out.println(personA); // ✅ 출력하면 @123 메모리의 주소값이 출력됩니다.
int[] arr = {1, 2, 3, 4}; // ✅ 배열이 담긴 arr 는 참조형 변수입니다.
System.out.println(arr); // ✅ 출력하면 @123 메모리의 주소값이 출력됩니다.
✅ 래퍼클래스도 객체이다.
- 래퍼클래스가 담겨 있는 변수도 참조형 변수이다.
- 하지만 출력시 메모리 주소값이 나오지 않는다.
-> 내부적으로toString()이 오버라이딩되어 있기 때문이다.Integer num = 100; System.out.println(num); // 출력 100
Integer num = 123; // 래퍼클래스
String str = num.toString(); // ✅ 편리한 기능
int a = 100; // 그냥 데이터 100
String str = a.toString(); // ❌ 변환 불가
Integer는 참조형(객체)이지만 기본형 int 값을 직접 대입할 수 있습니다.Integer.valueOf(10)을 호출하여 객체를 생성하기 때문입니다.Integer num3 = 10; // ✅ 오토박싱
// ✅ 내부적 자동 처리(래퍼형 <- 기본형)
Integer num = Integer.valueOf(10);
num은 Integer 객체(참조형변수)지만 기본형 int 변수에 대입할 수 있습니다.num.intValue()를 호출하여 기본형으로 변환하기 때문입니다.Integer num3 = 10;
int num = num3; // ✅ 오토 언박싱
// ✅ 내부적 자동처리(기본형 <- 래퍼형)
int a = num.intValue();