Java - 변수

develkkm·2025년 9월 2일

0부터 시작하는 Java

목록 보기
2/27

변수(Variable)란?

변수의 필요성

아래와 같은 코드를 작성했다고 해보자.

package variable;

public class Var1 {
    public static void main(String[] args) {
        System.out.println(10);
        System.out.println(10);
        System.out.println(10);
    }
}

이 코드는 숫자 10을 세 번 출력한다.
만약 출력값을 20으로 바꾸고 싶다면, 세 줄 모두 직접 수정해야 한다.
출력하는 코드가 100개라면, 100개를 모두 바꿔야 한다.

또한 사용자가 입력한 값을 출력하고 싶다면 어떻게 해야 할까?
입력 값은 항상 변한다. 어떤 사용자는 100을 넣고, 또 다른 사용자는 200을 넣을 수도 있다. 이처럼 값이 변하는 상황에서는 어딘가에 값을 저장해두고 필요할 때 꺼내 쓰는 기능이 필요하다.

이 문제를 해결하기 위해 변수(variable)라는 기능을 제공한다.
변수는 말 그대로 변할 수 있는 수, 즉 데이터를 담아두는 저장소다.


변수 선언과 초기화

변수를 사용하려면 먼저 선언해야 한다.

int a; // 변수 선언
a = 10; // 변수 초기화
System.out.println(a);
  • 변수 선언: int a; → 정수를 담을 수 있는 저장소 a를 만든다.
  • 변수 초기화: a = 10; → 변수 a에 처음으로 값을 넣는다.
  • 값 읽기: System.out.println(a); → 변수 이름을 쓰면 저장된 값을 읽을 수 있다.

변수의 값은 변경할 수도 있다.

int a;
a = 10;
System.out.println(a); // 10 출력
a = 50; 
System.out.println(a); // 50 출력

변수의 값을 바꾸면 기존 값은 사라지고 새로운 값으로 대체된다.


초기화하지 않은 변수

Java에서 변수를 선언만 하고 초기화하지 않은 채 사용하려고 하면 컴파일 오류가 발생한다.

int a;
System.out.println(a); // 오류 발생: 변수 a가 초기화되지 않았다.

Java는 로컬 변수(메서드 안에서 선언한 변수)를 초기화하지 않으면 사용할 수 없도록 강제한다.
이는 예상치 못한 값(쓰레기 값)이 사용되는 문제를 방지하기 위함이다.

단, 클래스의 멤버 변수(필드)는 별도의 초기화를 하지 않아도 각 타입의 기본값이 자동으로 들어간다.


변수 타입

Java의 변수는 담을 수 있는 값의 종류에 따라 타입(type)이 다르다.

int a = 100;        // 정수
double b = 10.5;    // 실수
boolean c = true;   // 불리언 (true/false)
char d = 'A';       // 문자 하나
String e = "Hello"; // 문자열

숫자 타입

  • byte: -128 ~ 127, 아주 작은 범위의 정수를 다룰 때 사용한다.
  • short: -32,768 ~ 32,767, 메모리를 절약하고 싶을 때 사용한다.
  • int: 약 -21억 ~ 21억, 가장 많이 쓰이는 기본 정수 타입이다.
  • long: 약 -900경 ~ 900경, 큰 정수를 다룰 때 사용하며 값 뒤에 L을 붙인다.

실수 타입

  • float: 7자리 정밀도, 값 뒤에 f를 붙인다.
  • double: 15자리 정밀도, 기본 실수 타입으로 가장 많이 사용한다.

논리 타입

  • boolean: true 또는 false 값만 가질 수 있다. 조건문이나 제어문에서 많이 사용한다.

문자 타입

  • char: 문자 하나를 저장한다. 작은 따옴표 'A'처럼 사용한다.
  • 내부적으로는 문자를 숫자로 변환한 유니코드 값을 저장한다.

문자열 타입

  • String: 문자열을 다루는 참조 타입이다. 큰 따옴표 "Hello"로 표현한다.
  • String은 기본 타입처럼 쓰이지만 실제로는 클래스다.

변수 명명 규칙

변수 이름에는 규칙과 관례가 있다.

규칙

  • 숫자로 시작할 수 없다.
  • 공백을 포함할 수 없다.
  • Java 예약어(int, class 등)는 사용할 수 없다.
  • 영문자, 숫자, _, $만 사용할 수 있다.

관례

  • 변수 이름은 소문자로 시작한다.
  • 여러 단어로 구성된 이름은 낙타표기법(camelCase)을 따른다.
    • 예: studentCount, orderDetail
  • 클래스 이름은 대문자로 시작한다.
  • 상수는 모두 대문자와 _로 표기한다.
    • 예: USER_LIMIT
  • 패키지는 모두 소문자로 작성한다.
profile
알던것을 더 확실하게

0개의 댓글