변수


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


철수는 사과를 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

■ 시스템을 총괄하는 운영체제


우리가 사용하는 하드웨어들의 기술이 발전하는 속도는 예측하기 어려울 정도로 빠르다. 인간이 할 수 없는 여러가지 일들을 똑똑한 컴퓨터들은 척척 해낸다. 하지만, 우리의 언어를 컴퓨터는 이해할 수 없기 때문에 컴퓨터 언어를 사용하여 컴퓨터에게 명령을 내린다. 이때, 중요한 역할을 담당하는 것이 있다. 그것이 바로 운영체제이다.





우리의 인종은 다양하며 다양한 언어를 사용한다. 언어가 다르면 의사소통을 할 수 없다. 컴퓨터도 마찬가지로 다양한 운영체제가 존재한다. 

운영체제는 하드웨어를 제어하고 컴퓨터 자원을 관리하는 컴퓨터 시스템 총괄자 역할을 한다.  대표적인 운영체제로, Window 운영체제, Linux 운영체제, 맥키토시 운영체제가 있다. 컴퓨터의 명령을 내리기 위해서는 운영체제의 도움이 필요한데 운영체제가 다르면 소통할 수 없다.


 운영체제 통역사 JVM


실제로 운영체제와 대화하는 것은 JAVA언어가 아니다. 바로 JVM이 이러한 역할을 수행한다. JVM은 자바 가상머신이라 불리며, JAVA언어를 어떤 운영체제에서 사용하든지 JVM이 통역 역할을 담당하여 문제없이 프로그램을 실행 시킬 수 있다. 그래서 JAVA 언어의 특징 중에 하나가 이식성이 좋다는 말이 있다. 물론 운영체제 환경에 맞는 JVM를 사용해야 한다. 그래서 오라클 홈페이지에서 JAVA를 다운받을 때 운영체제 맞는 JAVA를 다운받는 것이 이때문이다.


자바의 구동원리는 아래와 같다.

1. 사용자가 작성한 코드로 MyProgram.java라는 소스파일을 만든다. 소스파일은 우리가 이해할 수 있는 언어로 작성된 파일이므로 JVM이 해석 할 수 없다. 그래서 JVM이 해석할 수 있도록 중간 작업을 거쳐야 한다. 

2.  javac.exe라는 실행파일이 자바 컴파일러다. 이는 JVM을 구동시키고, 자바 프로그램이 실행 될 수 있도록 해준다. 컴파일러가 사용자가 작성한 자바 코드를 해석하여 JVM이 해석할 수 있도록 바이트코드로 변환한다. 이렇게 변환된 파일이 MyProgram.class파일이다.

3. 컴파일로 부터 전달받은 클래스 파일을 JVM이 해석하여 우리가 작성한 MyProgram 프로그램을 실행하게 된다.












'JAVA' 카테고리의 다른 글

자바설치  (0) 2018.08.16
변수 & 변수의 종류 & 변수의 자료형  (0) 2018.08.02

+ Recent posts