자바에서 변수는 크게 두 가지 종류로 나뉩니다: 기본 데이터 타입 변수 (일반 변수)와 참조 데이터 타입 변수 (참조 변수)입니다. 이 두 가지 변수는 메모리 할당 방식과 데이터 접근 방식에서 큰 차이가 있습니다.
1. 일반 변수 (Primitive Variables)
**기본 데이터 타입(Primitive Data Types)**은 자바에서 제공하는 가장 기본적인 데이터 타입으로, 실제 값을 직접 저장합니다. 자바에서는 총 8개의 기본 데이터 타입을 제공합니다:
- byte: 1바이트 정수
- short: 2바이트 정수
- int: 4바이트 정수
- long: 8바이트 정수
- float: 4바이트 부동 소수점 숫자
- double: 8바이트 부동 소수점 숫자
- char: 2바이트 문자
- boolean: 1비트 논리값 (true 또는 false)
2. 참조 변수 (Reference Variables)
**참조 데이터 타입(Reference Data Types)**은 객체의 메모리 주소를 저장하는 변수입니다. 참조 데이터 타입에는 배열, 클래스, 인터페이스 등이 포함됩니다. 참조 변수는 실제 데이터가 저장된 힙 메모리의 주소를 참조합니다.
3. 주요 차이점
- 메모리 할당
- 기본 데이터 타입 변수: 스택 메모리에 실제 값을 저장합니다.
- 참조 데이터 타입 변수: 스택 메모리에 객체의 메모리 주소를 저장하고, 실제 데이터는 힙 메모리에 저장됩니다.
- 데이터 접근
- 기본 데이터 타입 변수: 직접 값을 접근하고 조작합니다.
- 참조 데이터 타입 변수: 객체의 메모리 주소를 통해 데이터를 접근하고 조작합니다.
- 기본 값
- 기본 데이터 타입 변수: 선언 시 기본 값이 할당됩니다 (예: int는 0, boolean은 false).
- 참조 데이터 타입 변수: 선언 시 null 값이 할당됩니다.
예제

위 예제에서 num1과 num2는 기본 데이터 타입 변수로, num2에 num1의 값을 복사한 후 값을 변경해도 서로 영향을 미치지 않습니다. 반면에 arr1과 arr2는 참조 데이터 타입 변수로, arr2에 arr1을 복사하면 같은 배열 객체를 참조하게 되어 하나의 배열 값이 변경되면 두 변수 모두에 영향을 미칩니다.
결론
기본 데이터 타입 변수와 참조 변수의 차이를 이해하는 것은 자바 프로그래밍에서 매우 중요합니다. 기본 데이터 타입은 실제 값을 저장하고, 참조 변수는 객체의 주소를 저장합니다. 이 차이를 이해함으로써 변수 사용 시 발생할 수 있는 오류를 줄이고, 프로그램의 효율성을 높일 수 있습니다.

'JAVA' 카테고리의 다른 글
배열과 ArrayList 과 상속 (0) | 2024.07.28 |
---|---|
JAVA에서의 클래스와 객체 (0) | 2024.07.14 |
JAVA 변수 with 이클립스 (0) | 2024.07.08 |
JAVA 프로그래밍 기초 with.이클립스 (1) | 2024.07.08 |
(디지털컨버전스)공공데이터 융합 JAVA 개발자 양성과정에 대한 각오 (1) | 2024.06.30 |