CS/Java

[Java] - 변수

sson-coding 2025. 9. 10. 15:32

변수(Variable)란?

프로그래밍을 시작하면서 가장 먼저 배우는 개념 중 하나가 바로 변수(Variable) 이다.

변수는 말 그대로 변할 수 있는 값 을 저장하는 공간인데, 조금 더 이해하기 위해 상자에 비유해보겠다.

 

우리가 일상에서 “사과 3개” 를 기억하려면 머릿속에 숫자 3을 떠올린다.

하지만 컴퓨터는 사람이 아니기 때문에, 메모리 공간에 숫자를 저장하고, 그것을 변수명 으로 관리한다.

즉, 변수란 데이터를 저장하기 위해 할당 받은 메모리 공간 이고, 그 공간에 붙여진 이름인 변수명 을 통해 데이터를 읽고 수정할 수 있게 된다.


변수 선언과 초기화

변수 선언

변수 선언은 int a 와 같이 선언한다. 위와 같이 선언하게 되면 컴퓨터의 메모리 공간을 확보해

숫자 정수를 보관할 수 있는 이름이 a 라는 데이터 저장소를 만든다.

a 를 변수라고 하고, 이렇게 변수를 만드는 것을 변수 선언 이라고 한다.

 

아래 예시와 같이 하나씩 선언할 수 있고, 한 번에 여러 변수를 선언할 수 있다.

int a;
int c,d;

변수 초기화

변수 초기화는 변수를 선언하고, 선언한 변수에 값을 저장하는 것을 말한다.

아래 예시와 같이 변수 선언과 초기화를 따로 할 수 있고, 한번에 할 수 있다.

int a;
a = 1;

int b = 2;

 

만약 변수를 초기화 하지 않고 사용하게 되면 어떻게 될까?

 

java: variable a might not have been initialized 와 같은 컴파일 에러가 발생한다.

해석을 해보면 변수가 초기화 되지 않았다는 오류 내용이다.

 

이런 오류가 발생하는 이유는, 컴퓨터의 메모리는 여러 시스템이 사용하는 공간이기 때문이다.

메모리에는 이전에 사용되었던 값들이 남아 있을 수 있다.

그런데 변수를 초기화 하지 않으면, 그 공간에 기존에 어떤 값이 있었는지 아무도 보장할 수 없다.

 

즉, 초기화 하지 않은 변수를 사용하 예측 불가능한 값(쓰레기 값) 이 출력될 수 있기 때문에, Java 는 컴파일 단계에서 오류를 발생시켜 안전하게 막아준다.


변수 명명 규칙

자바에서 변수의 이름을 짓는데 규칙과 관례가 존재한다. 규칙은 필수이고 지키지 않으면 컴파일 오류가 발생한다. 관례는 필수는 아니지만 거의 모든 개발자가 관례를 따르기 때문에 사실상 규칙이라고 생각하면 된다.

규칙

  1. 변수 이름은 숫자로 시작할 수 없다.
  2. 이름에는 공백이 들어갈 수 없다.
  3. 자바의 예약어를 변수 이름으로 사용할 수 없다.
  4. 변수 이름에는 영문자, 숫자, 달러, 밑줄 만 사용할 수 있다.
  5. 대소문자가 구분되며 길이에 제한이 없다.

관례

  1. 낙타 표기법(카멜 케이스)
    • 소문자로 시작하는 것이 일반적이다.
    • 여러 단어로 이루어진 변수 이름의 경우, 첫 번째 단어는 소문자, 그 이후 각 단어는 대문자로 시작한다.
    • 예시 : myAccount, orderDetail
  2. 상수 이름은 모두 대문자로 한다.
    • 여러 단어로 이루어진 경우 ‘_’ 로 구분한다.
    • 예시 : PI, MAX_NUMBER

기본형 과 참조형

변수의 데이터 타입을 크게 분류하면 기본형과 참조형으로 분류할 수 있다.

데이터 타입

변수를 선언할 때는 단순히 이름만 지정하는 것이 아니라, 어떤 종류의 데이터를 저장할 것인지 알려주어야 한다. 이를 데이터 타입(자료형) 이라고 한다.

기본형

기본형 타입에는 크게 논리형, 문자형, 정수형, 실수형 으로 나뉜다.

기본형에는 어떤것들이 있는지 알아보자.

출처 : https://inpa.tistory.com/entry/JAVA-☕-변수의-기본형-참조형-타입

특징

기본형의 특징은 아래와 같다.

  1. 모두 소문자로 시작된다.
  2. 변수에 사용할 값을 직접 넣을 수 있고, 해당 값을 바로 사용할 수 있다.
  3. 변수의 선언과 동시에 메모리를 생성한다.
  4. null 값을 가질 수 없다.
  5. 모든 값 타입은 메모리의 stack(스택)에 저장된다.

논리형 - boolean

  • true 와 false 중 하나의 값을 가진다.
  • 기본값 : false
  • true 와 TRUE 는 대소문자를 구분하므로 서로 다른 값이다.

문자형 - char

  • 문자를 저장하는데 사용되며, 변수에 하나의 문자만 저장할 수 있다.
  • 문자를 내부적으로 정수(유니코드)로 저장하므로 정수형,실수형과 연산이 가능하다.

정수형 - byte,short,int,long

  • int 가 기본 자료형이다.
  • long 타입의 변수를 선언할 때는 L 을 붙여야 한다.

실수형 - float,double

  • double 이 기본 자료형이다.
  • float 타입의 변수를 선언할 때는 f 를 붙여야 한다.

참조형

참조형 타입은 위의 8가지 자료형을 제외한 나머지를 말한다고 보면 된다. 자바가 제공하는 클래스, 개발자가 만든 클래스, 배열 등 참조형이라고 한다.

출처 : https://inpa.tistory.com/entry/JAVA-☕-변수의-기본형-참조형-타입

특징

참조형 특징은 아래와 같다.

  1. 실제 값이 저장되지 않고, 자료가 저장된 공간의 주소를 저장한다.
  2. .(dot) 을 통해 메모리 상에 생성된 객체를 찾아가 사용할 수 있다.
  3. 메모리의 heap(힙) 에 실제 값을 저장하고, 그 참조값을 갖는 변수는 스택에 저장한다.
  4. null 로 초기화 시킬 수 있다.
  5. 참조값만 가지고 계산할 수 없다.

null

null 이란 값이 존재하지 않는, 없다는 뜻으로, 참조형 변수에서 아직 가리키는 대상이 없다면 null 이라는 값을 넣어둘 수 있다.


참고 자료

https://dev-cini.tistory.com/50#google_vignette

https://inpa.tistory.com/entry/JAVA-☕-변수의-기본형-참조형-타입

https://sson-coding.tistory.com/4

https://sson-coding.tistory.com/39