변수
자바 변수는 크게 '기본형 변수'와 '참조형 변수'로 나뉘며, 선언 위치에 따라 '지역 변수', '인스턴스 변수', '클래스 변수'로 분류됩니다.
1. 기본형 변수 (Primitive Variables)
- 실제 값을 저장하는 변수입니다.
- 자바에서 미리 정의된 8가지 자료형을 사용합니다.
- 논리형 (boolean): 참(true) 또는 거짓(false) 값을 저장합니다.
- 문자형 (char): 하나의 문자(유니코드)를 저장합니다.
- 정수형 (byte, short, int, long): 정수 값을 저장하며, 각 자료형은 저장할 수 있는 값의 범위가 다릅니다.
- 실수형 (float, double): 실수 값을 저장하며, float은 단정밀도, double은 배정밀도 실수를 저장합니다.
public void primitiveTypes() {
boolean bool = true;
char character = 'A';
int integer = 123;
double decimal = 3.14;
System.out.println("Boolean: " + bool);
System.out.println("Character: " + character);
System.out.println("Integer: " + integer);
System.out.println("Decimal: " + decimal);
}
2. 참조형 변수 (Reference Variables)
- 객체의 메모리 주소를 저장하는 변수입니다.
- 클래스, 인터페이스, 배열, String 등을 참조합니다.
- String도 일종의 클래스
- 기본형 변수와 달리, 실제 데이터는 힙(heap) 메모리에 저장되고, 변수는 그 주소를 가리킵니다.
public void referenceTypes() {
String str = "World";
int[] array = {1, 2, 3};
System.out.println("String: " + str);
System.out.println("Array: " + java.util.Arrays.toString(array));
}
3. 선언 위치에 따른 변수 분류
public class VariableExample {
// 클래스 변수 (static 변수)
static int classVariable = 100;
// 인스턴스 변수
String instanceVariable = "Hello";
public void method() {
// 지역 변수
int localVariable = 10;
System.out.println("지역 변수: " + localVariable);
System.out.println("인스턴스 변수: " + instanceVariable);
System.out.println("클래스 변수: " + classVariable);
}
public static void main(String[] args) {
//main 지역변수
int mainLocal = 10;
VariableExample example = new VariableExample();
example.method();
System.out.println("메인지역 변수:"+ mainLocal);
}
}
- 지역 변수 (Local Variables)
- 메서드나 블록 내에 선언된 변수입니다.
- 선언된 블록 내에서만 사용할 수 있으며, 블록이 종료되면 메모리에서 사라집니다.
- 반드시 초기화해야 사용할 수 있습니다.
- 인스턴스 변수 (Instance Variables)
- 클래스 내에 선언되고, 객체(인스턴스)마다 별도로 존재하는 변수입니다.
- 객체가 생성될 때 메모리에 할당되고, 객체가 소멸될 때 메모리에서 사라집니다.
- 자동으로 기본값으로 초기화됩니다.
- 클래스 변수 (Class Variables)
- 클래스 내에 static 키워드를 사용하여 선언된 변수입니다.
- 클래스의 모든 인스턴스가 공유하는 변수이며, 클래스가 메모리에 로드될 때 생성되고 프로그램이 종료될 때 소멸됩니다.
- 자동으로 기본값으로 초기화됩니다.
자바 변수 종류별 특징 요약
구분 | 자료형 | 선언 위치 | 특징 |
기본형 변수 | boolean, char, byte, short, int, long, float, double | 지역, 인스턴스, 클래스 | 실제 값을 저장 |
참조형 변수 | 클래스, 인터페이스, 배열 등 | 지역, 인스턴스, 클래스 | 객체의 메모리 주소를 저장 |
지역 변수 | 모든 자료형 | 메서드 또는 블록 내부 | 선언된 블록 내에서만 사용 가능, 반드시 초기화 필요 |
인스턴스 변수 | 모든 자료형 | 클래스 내부 | 객체마다 별도로 존재, 객체 생성 시 메모리 할당 |
클래스 변수 | 모든 자료형 | 클래스 내부 (static) | 모든 인스턴스가 공유, 클래스 로드 시 메모리 할당 |
자바 변수는 프로그램에서 데이터를 저장하고 처리하는 데 필수적인 요소이며, 각 변수의 특징을 이해하는 것은 효율적인 자바 프로그래밍의 기초가 됩니다.
'Java' 카테고리의 다른 글
[Java] 기본 문법 정리 - 문자열, 컬렉션(List, Set, Map) (0) | 2025.03.19 |
---|---|
[Java] 기본 문법 정리 - 반복문, 배열과 리스트 (0) | 2025.03.19 |
[Java] 기본 문법 정리 - 자료형과 변수, 연산자, 조건문 (0) | 2025.03.19 |
[Java] String 비교 시 ==이 아닌 equals()를 사용해야 하는 이유 (0) | 2025.03.18 |
[Java] Builder Pattern 그리고 @Builder annotaion (0) | 2022.09.19 |
댓글