4.문법 기초


4.5 변수

  변수(Variable)란, 간단히 말하자면, 값을 저장하는 곳을 말하며, 이 저장된 값이 계속 변경되기 때문에 변하는 수 즉, 변수라고 부른다.

  자바에서 사용되는 기본(Primitive) 데이터 타입으로는, boolean, char, byte, short, int, long, float, double이 있다. 이제 하나씩 열어(!)보자.

  • boolean

      논리값으로서, boolean변수가 가질수 있는 값의 종류는 오로지, true, false만이 있을 수 있다. 실제 할당(Assignment)문은 다음과 같다.

    boolean b = false;

      앞에서 C언어는 false는 0이고 true는 1로 간주되어 숫자와 연산이 가능하지만, 자바는 안된다고 했었다. 즉, 다음과 같은 시도는 자바에서는 컴파일시에 에러를 만나게 된다.(물론 C언어에 boolean타입은 int타입을 차용해서 사용한다.)

    boolean a = 1;
    C:\Temp>javac test.java
    test.java:5: incompatible types
    found    : int
    required: boolean
              boolean a = 1;
              ^
    1 error

      조금 더 깊이 들어가보자. 만일 다음과 같은 Source Code를 컴파일한다고 하면,
    import java.io.*;

    class test{
        public static void main(String[] args){
           boolean a = true;

           System.out.println(a);
        }
    }

      test.class파일을 Hex편집기를 통해서 열어보면 다음과 같다.(Hex편집기는 Visual Studio나 Ultra Edit같은 에디터에 보면 Hex모드로 파일을 열수 있다. Unix계열에서는 od -x filename으로 보면 된다.)


      위에서 보면(Visual Studio로 본 화면이다), 박스친 곳이 4군데 보이는데 왼쪽은 실제 코드고 오른쪽은 출력가능한 문자들(알파벳이나 숫자)만을 보여주는 것이다.

      true라는 값이 boolean타입이고, 값이 두개 즉, true, false만 구분할 수 있으면 되므로 1bit만 있으면 표현 가능하다. 하지만 실제로는 메모리 운영을 위한 최소단위인 1byte(8bit)의 자리를 차지한다.

      나중에 int값을 배울때 다시 보겠지만, true는 실제로 1이라는 값이 저장된 것과 동일한 값으로 저장되는데, 아래쪽 박스인 04가 바로 1을 나타낸다. 이 부분을 03으로 고쳐서 실행하게 되면 false라는 결과를 출력한다. 즉, 0이란 얘기다. 내부적인 저장은 C언어와 비슷하지만, 문제는 연산을 전혀 허용하지 않는 다는 점이다.

      물론, 05로 변경하면 숫자 2가 되고, 당연히 실행하면 에러가 발생한다. 실제로 해보고 어떤 에러들이 나는지 볼 것.

    매직넘버(Magic Number)   특정한 파일임을 구분하기 위해서 파일의 맨 처음 일정부분을 지정된 번호로 채우는데 이러한 것을 매직 넘버라고 부른다. 자바의 CLASS파일도 이러한 매직 넘버가 있다. 처음에 CAFEBABE가 바로 매직 넘버이다. 모든 CLASS파일은 다 이 매직넘버로 시작해야 한다.
  좀더 자세한 얘기는 뒤로 미루자.

- Last Update : 2002.02.20 by Deadfire(http://www.deadfire.net)

Java 언어 기초
서 언
Install
First Example
문법기초
     - 주석
     - 구분자
     - 명명규칙
     - 리터럴
     - 변수(기본타입)
     - 형변환
     - 연산자
     - 조건문
     - 반복문

Copyright ⓒ 1997 ~, Deadfire Program Master