변수


변수를 데이터를 저장하는 공간이라고 이해해보자. 예를 들어보겠다


철수는 사과를 10개 가지고 있다.

영희는 배를 5개 가지고 있다.

철수와 영희가 갖고 있는 과일의 개수는 몇 개인가?


이 문장을 자바코드를 사용하여 표현해보겠다.


int apple = 10;

int peach = 5;

int sum = apple + peach;

int totalFruit = sum;


정확히 알수는 없지만 철수와 영희의 상황을 대입해 본다면 직관적으로 이해할 수 있을 것이다. 

apple이라고 하는 메모리에 10을 저장하고 peach라는 메모리에 5를 저장하면 sum이라는 메모리에는 무엇이 들어갈까?

바로 apple의 메모리 주소에 있는 10이라는 데이터와 peach의 메모리 주소에 있는 5라는 데이터를 연산한 데이터가 들어있을 것이다.

마지막으로 totalFruit의 메모리에는 연산한 결과값을 갖고 있는 sum의 데이터가 들어가 있다.


 변수의 종류


1. 사용자에게 입력받는 값

2. 계산을 위해 저장하는 값

3. 계산의 결과 값


위의 상황을 변수의 값으로 대입하면 어떻게 될 것인가?


1. 사용자에게 입력받는 값 - apple 변수, peach 변수

2. 계산을 위해 저장하는 값 - sum 변수

3. 계산의 결과 값 - totalFruit 변수


그렇다면 이러한 변수들을 컴퓨터 즉, 컴파일러에게 알리는 행위가 존재한다. 그것을 선언이라고 한다. 


int apple;


이런식으로 변수를 선언했다고 가정하면 이러한 뜻으로 풀이된다.

"컴파일러야 변수의 이름을 apple이라고 지을게 그리고 int형으로 사용할게 "



int appple = 10;


10이라는 데이터를 할당하는 순간 컴파일러가 apple변수 메모리에 10을 저장하게 된다.

"컴파일러야 사용자에게 입력받은 10이라는 데이터를 저장하는 변수 apple을 int형으로 사용할게 메모리에 할당해줘"



변수의 자료형


그렇다면 int는 무엇인가? 이러한 키워드를 자료형이라고 부른다. 자바에는 자료형이 8개가 존재한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
public class Variables {
 
    public static void main(String args[]) {
        boolean variableBoolean;
        char variableChar;
        byte variableByte;
        short variableShort;
        int variableInt;
        long variableLong;
        float variableFloat;
        double variableDouble;
    }
}
cs


각가 자료형 별로 이름을 붙여줬다. 앞에 variable이라고 변수를 뜻하는 단어를 붙인 이유는 자료형의 이름으로 변수명을 지을 수 없기 때문이다. 이를 예약어라고 한다. 변수명은 예약어로 지을 수 없는 규칙이 있다. 위와 같이 선언을 했으니 값을 저장하게 된다면 컴파일러가 실행 되는 순간 메모리에 데이터들이 할당 받게 된다.


이렇게 8개의 자료형을 primitive type이라고 총칭한다. 각각의 자료형에 맞는 데이터를 저장해야 하기 때문에 어떤 자료형에 어떤 데이터가 들어가야 하는지 숙지해야 할 것이다.



이렇게 사용자가 입력할 수 있는 데이터의 종류는 3가지 존재한다.

1. 숫자

2. 문자

3. true/false

그렇다면, 왜 이렇게 복잡하게 각각의 자료형 마다 값의 범위를 구분하는 것일까?

그것은 메모리 공간의 효율성을 높이기 위해서다. 각각의 자료형마다 차지하는 메모리의 크기는 정해져 있다.

만약에 실수의 데이터 double 같은 경우에는 8바이트의 메모리 크기를 갖고 있다.

작은 숫자를 할당하기 위해서 메모리 크기가 큰 자료형을 사용한다면 메모리 공간의 효율성이 떨어질 것 이다.







'JAVA' 카테고리의 다른 글

자바설치  (0) 2018.08.16
자바의 동작원리  (0) 2018.08.02

+ Recent posts