EEALL@ONCE

☕ 자바 자료형 - 원시 자료형 primitive type vs 참조 자료형 reference type 본문

언어💻/자바☕

☕ 자바 자료형 - 원시 자료형 primitive type vs 참조 자료형 reference type

올엣원스 2023. 8. 3. 23:18
728x90

원시 자료형 primitive type  vs 참조 자료형 reference type

🐭:

이 두 가지 유형은 메모리에 데이터를 저장하고 처리하는 방법이 다릅니다.

원시 자료형:

  • 기본 유형은 프로그래밍 언어에 내장된 기본 데이터 유형입니다.
  • 단순한 값을 나타내며 객체가 아닙니다.
  • 크기가 고정되어 있고 변수가 선언된 메모리에 직접 저장됩니다.
  • Java의 기본 유형의 예는 int, double, char, boolean 등입니다.
  • 기본형으로 변수를 선언하면 변수에 실제 값이 저장됩니다.

 

참조 유형:

  • 참조 유형은 실제 데이터가 아닌 개체의 메모리 주소(참조)를 저장합니다.
  • 복잡한 데이터 구조와 객체를 저장하는 데 사용됩니다.
  • 참조 유형에는 클래스, 인터페이스, 배열 및 기타 사용자 정의 유형이 포함됩니다.
  • 참조 유형으로 변수를 선언하면 변수는 메모리의 실제 데이터 위치를 가리키는 메모리 주소를 보유합니다.

 

그럼 참조 유형의 데이터는 실제로 어디에 저장되는거야????

참조 유형의 데이터는 주로 heap 메모리에 저장됩니다.

1. 객체 (Object) 참조:


   - 객체는 클래스를 기반으로 생성된 인스턴스입니다. 객체는 참조 유형의 데이터로 간주됩니다.
   - 객체를 생성할 때, 해당 객체가 저장될 heap 메모리 영역이 할당되고, 객체의 속성과 상태는 해당 heap 영역에 저장됩니다.
   - 변수를 선언하여 객체를 참조하면, 해당 변수는 heap 메모리 내에 실제 데이터가 저장된 위치를 가리키는 메모리 주소를 담게 됩니다.

// String 객체를 생성하고, str 변수가 해당 객체를 참조합니다.
String str = "Hello"; // "str" 변수에는 문자열 "Hello"가 저장된 위치를 가리키는 메모리 주소가 저장됩니다.



2. 배열 (Array) 참조:


   - 배열은 여러 요소들의 모음이며, 참조 유형의 데이터입니다.
   - 배열도 객체와 마찬가지로 heap 메모리에 저장됩니다. 배열의 각 요소들은 해당 heap 메모리 영역에 저장됩니다.
   - 배열 변수는 배열의 시작 주소(첫 번째 요소의 주소)를 가리키는 메모리 주소를 담습니다.

// int형 배열을 생성하고, numbers 변수가 해당 배열을 참조합니다.
int[] numbers = {1, 2, 3}; // "numbers" 변수에는 배열의 시작 주소(첫 번째 요소의 주소)가 저장됩니다.


따라서 참조 유형의 데이터는 실제 데이터가 저장된 위치를 가리키는 메모리 주소를 변수에 저장합니다. 이렇게 메모리 주소를 사용하여 실제 데이터에 접근하고 조작할 수 있습니다. 이러한 접근 방식은 자바의 메모리 관리와 객체 지향 프로그래밍에서 중요한 역할을 합니다.

 

 

 

 

728x90