[Java] 변수 개념

🌈 m1naworld ·2022년 11월 8일
0

자바를 잡아! 👻

목록 보기
5/19
post-thumbnail

컴퓨터 메모리(RAM)는 값을 저장할 수 잇는 수많은 번지(주소)들로 구성되어 있음. 메모리의 어디에 저장하고, 어떤 방식으로 저장할지 정해놓지 않으면 프로그램 개발이 무척 어렵게 되는데, 이러한 문제를 해결하기 위해 변수라는 개념을 사용한다.

🎯 변수

값을 저장할 수 있는 메모리의 특정 번지에 붙이는 이름으로 프로그램은 변수를 통해 메모리의 특정 번지에 값을 저장하고 읽을 수 있음.

메모리에 값을 저장하고 싶다면 변수를 선언하고 변수에 값을 지정하면 된다. 그러면 메모리의 어디에 저장하고, 어떤 방식으로 지정할지는 프로그래밍 언어와 운영체제가 정한다. 자바의 경우 JVM이 하는 일이다.

🎯 변수 선언

Java에서는 변수를 사용하기 위해서 먼저 변수를 선언해야 함.
변수 선언은 변수에 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무엇인지를 결정함.

int x;
int y;
int z;

int x, y, z; // 가능 o

타입은 변수에 저장되는 값의 종류와 범위를 결정짓는 요소이며, 같은 타입의 변수는 콤마(,)를 이용해 한꺼번에 선언할 수도 있음.


🎯 값 저장

자바에서는 변수에 값이 저장되지 않으면 변수가 생성되지 않음❗️
선언과 생성은 다름!
변수 선언은 저장되는 값의 종류와 이름만 언급한 것이며 변수에 최초로 값이 저장될 때 변수가 생성됨. 이것을 변수 초기화라고 하며 이때 사용된 값을 초기값이라고 한다.

int score = 90;

초기값은 위와 같이 변수를 선언함과 동시에 설정 가능하며 변수가 초기화되면 메모리 번지 정보를 갖게 되고, 해당 메모리 번지에 값이 저장된다.

int value; // 선언
int result = value + 10; // 선언만 되고 초기화되지 않았기 때문에 컴파일 에러 발생 

초기화 되지 않은 변수는 아직 메모리 번지 정보를 가지고 있지 않으므로 변수를 통해 메모리 값을 읽을 수 없음.


🎯 변수 사용 범위

메소드 블록 내에서 선언된 변수를 로컬 변수라고 부르는데, 로컬 변수는 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.

public class VariableExample{ // 클래스 블록
	public static void main(String[] args){ // 메소드 블록
    	
        int value = 10; // 로컬 변수 value 
        int sum - value + 10; // 로컬 변수 sum
        System.out.println(sum);
    }
}

변수는 블록 내 어디에서든 선언할 수 있지만, 변수 사용에는 제한이 따름.
변수는 기본적으로 자신이 선언된 위치로부터 자신이 속한 블록 내부에서만 사용할 수 있음❗️

메소드 블록 내에는 다른 중괄호 {} 블록들이 작성될 수 있음. 예를 들어 조건문에 해당하는 if(){}, 반복문 for(){}, while(){} 등이 중괄호 블록을 가질 수 있는데, 이러한 경우 또한 중괄호 {} 블록 내에서 선언된 변수는 해당 중괄호 {} 블록 내에서만 사용이 가능하고 밖에서는 사용할 수 없음!


❗️ 변수 설정 시 주의사항

  • 변수가 어떤 범위에서 사용될 것인지를 생각하고, 선언 위치를 결정해야 함


Ref.
책 - 혼자 공부하는 자바

profile
개발자로 사는 내 삶은 즐거워 👾

0개의 댓글