본문 바로가기
Java

[Java] 변수 Variable

by clolee 2025. 3. 18.

변수

자바 변수는 크게 '기본형 변수'와 '참조형 변수'로 나뉘며, 선언 위치에 따라 '지역 변수', '인스턴스 변수', '클래스 변수'로 분류됩니다.

 

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) 모든 인스턴스가 공유, 클래스 로드 시 메모리 할당

 

자바 변수는 프로그램에서 데이터를 저장하고 처리하는 데 필수적인 요소이며, 각 변수의 특징을 이해하는 것은 효율적인 자바 프로그래밍의 기초가 됩니다.

댓글