본문 바로가기

프로그래밍 언어/Java

Java 데이터 타입 정리, 기본형과 참조형 이해하기

Java 데이터 타입 정리, 기본형과 참조형 이해하기

Java는 강력한 타입 시스템을 제공하며, 데이터 타입은 프로그램의 안정성과 성능에 큰 영향을 미칩니다. 이 글에서는 Java에서 사용하는 기본형(Primitive)과 참조형(Reference) 데이터 타입을 구체적으로 정리하고, 각 타입의 특징, 사용법, 그리고 실제 사례를 통해 차이를 이해할 수 있도록 도와드립니다.

 

 

목차

  1. 기본형(Primitive) 데이터 타입
  2. 참조형(Reference) 데이터 타입
  3. 오토박싱과 언박싱
  4. 메모리 할당 차이
  5. 예제와 실습
  6. 결론

 

1. 기본형(Primitive) 데이터 타입

기본형 데이터 타입은 Java에서 가장 기본적인 데이터 저장 단위로, 값 자체를 저장합니다. 총 8개의 기본형이 제공됩니다.

데이터 타입 크기 기본값
byte 1 바이트 0
int 4 바이트 0
double 8 바이트 0.0

기본형 특징

  • 값 자체를 저장하므로 메모리 사용량이 효율적입니다.
  • 스레드 안전(Thread-safe)하며, 불변(Immutable) 속성을 가집니다.

 

 

2. 참조형(Reference) 데이터 타입

참조형 데이터 타입은 객체의 메모리 주소를 저장합니다. 클래스, 배열, 인터페이스 등이 참조형 데이터 타입에 속합니다.

예제

String name = "Java";
int[] numbers = {1, 2, 3, 4};
        

특징

  • 값이 아닌 객체의 메모리 주소를 저장합니다.
  • 참조형 데이터는 힙(Heap) 메모리에 저장됩니다.
  • Garbage Collector가 메모리를 관리합니다.

 

 

3. 오토박싱과 언박싱

Java는 기본형 데이터를 객체화하거나, 객체를 기본형으로 변환하는 과정을 자동으로 처리하는 오토박싱과 언박싱 기능을 제공합니다.

예제

Integer num = 10; // 오토박싱
int value = num;  // 언박싱
        

 

 

 

 

4. 메모리 할당 차이

기본형 데이터는 스택(Stack)에 저장되며, 참조형 데이터는 힙(Heap) 메모리에 저장됩니다. 이러한 차이로 인해 성능과 메모리 관리에서 중요한 영향을 미칩니다.

 

 

5. 예제와 실습

다양한 데이터 타입을 활용하는 실제 코드를 살펴보겠습니다:

public class DataTypeExample {
    public static void main(String[] args) {
        int num = 100; // 기본형
        String text = "Hello"; // 참조형

        System.out.println("Number: " + num);
        System.out.println("Text: " + text);
    }
}
        

 

 

6. 결론

Java의 데이터 타입은 프로그램의 성능과 안정성을 결정짓는 중요한 요소입니다. 기본형과 참조형의 차이를 명확히 이해하고, 상황에 따라 적절히 사용하는 것이 중요합니다.