초리의 블로그

Java 강좌 - 01. 변수 본문

초리의 Java 스터디

Java 강좌 - 01. 변수

초리84 2015. 10. 31. 20:23

Java 프로그래밍을 하면 우리의 컴퓨터 메모리 공간에 데이터를 넣거나 객체를 넣어서 그것을 사용함으로써 프로그램을 실행하게 됩니다. , 프로그래머는 메모리 공간에 데이터를 넣고 데이터를 사용하거나 변경하는 작업을 하는 것이죠.


변수는 데이터를 넣을 있는 공간입니다.

영어로 variable이죠. 사전 뜻을 볼까요?


variable

1. 변동이 심한; 가변적인

2. 변화를 있는

3. 변수

- 네이버 사전


변수는 가변적인 , 변할 있는 수입니다. 한번 데이터를 넣은 뒤에 다른 데이터로 바꿀 있죠반대말은 상수입니다.


프로그래머가 사용할 메모리 위치를 직접 정할 수 없기 때문에, 메모리에 원하는 데이터 타입의 크기 만큼 영역을 잡고 그 메모리의 주소를 변수명으로 지정하여 사용합니다.


일단 먼저 변수를 사용하는 방법을 볼게요.


1 int a;

2 a = 10;

3 System.out.println(a);

4 a = 20;

5 System.out.println(a);

6 int b = 30;

7 System.out.println(b);


결과 :

10

20

30


위에서 부터 차례대로

1. int 변수 a 생성합니다.

2. 생성한 변수 a 10 할당합니다.

3. 표준 출력으로 a 저장된 값을 출력합니다.

4. a 20 할당합니다.

5. 표준 출력으로 a 저장된 값을 출력합니다,

6. int 변수 b 생성 , 30 할당 합니다.

7. 표준 출력으로 b 저장 값을 출력합니다.


아래는 그림은 메모리에 어떻게 변수에 할당 되고 값이 들어가는지 가시적으로 보여주기 위한 것이지 실제 메모리는 이렇지 않습니다.


int a;

이것이 변수 선언입니다.

메모리에 숫자 데이터를 저장할 공간을 만들고 저장 공간의 이름을 a 지정해 달라고 컴퓨터에 알려주기 위해 사용합니다.

그럼 메모리에 숫자 데이터를 저장할 빈공간이 생기게 됩니다.

상태에서 그냥 a 사용하려고 하면 에러가 발생합니다. a라는 이름의 메모리에 아무 데이터도 없기 때문이죠.


a = 10;

이라고 하면 a 이름의 메모리 공간에 10 저장합니다.

그럼 이때부터 a 사용할 있게 됩니다.


System.out.println(a);

a 이름의 메모리 공간에 있는 값을 불러와 표준출력 하게 됩니다.

a = 20;

이라고 하면 a 내용을 20으로 바꾸게 됩니다.


변수의 선언과 할당을 동시에 수도 있습니다.

int b = 30;

메모리 공간에 숫자 데이터를 저장할 공간을 만들고 이름을 b라고 , 공간에 30 넣습니다.


변수의 기본적인 사용 방법을 알아봤습니다.

근데 소스를 보면 계속 이상한 쓰고 있죠? 'int'라고 써놓고 설명에선 int 변수, 숫자 데이터라고 하고 있습니다.

이것이 바로 데이터 타입, 자료형입니다. 데이터의 종류와 크기를 지정하기 위해 사용합니다.

그럼 자바에서 제공하는 데이터 타입에 대해서 알아보겠습니다.





자바의 기본 데이터 타입은 아래와 같습니다. (enum은 좀 특수하니 나중에 따로 포스팅을 하겠습니다.)

 자료형

메모리 크기

표현 가능 범위

boolean

1 byte

true, false

char

2 byte

모든 유니코드 문자

byte

1 byte

-128 ~ 127

short

2 byte

-32768 ~ 32767

int

4 byte

-2147483648 ~ 2147483647

long

8 byte

-9223372036854775808 ~

9223372036854775807

float

4 byte

±(1.40 × 10-45  ~

3.40 × 1038)

double

8 byte

±(4.94 × 10-324 ~

1.79 × 10308)


위 표의 데이터 타입과 자바 1.5 때 추가 된 enum을 제외하곤 모두 다 참조형 데이터 타입입니다. (배열과 String도 모두 참조형입니다.)


표를 자세히 봐주세요. 자료형이 있고 각 자료형 마다 메모리의 크기가 있습니다. 그리고 각각 표현 가능한 데이터의 범위가 있죠.

예를 들어 int형은 메모리에 4byte의 영역이 잡히게 되어 -2147483648 ~ 2147483647 사이의 값을 저장할 수 있습니다. 표현 가능 범위 밖의 데이터를 넣으려고 하면 'out of range' 라는 에러가 발생합니다.


각각의 데이터 타입을 사용하는 방법을 보도록 하겠습니다.


boolean a = true;

char b = '철';

byte c = 10;

short d = 20;

int e = 30;

long f = 99999999999l;

float g = 1.21f;

double h = 3.141592653;


System.out.println(a);

System.out.println(b);

System.out.println(c);

System.out.println(d);

System.out.println(e);

System.out.println(f);

System.out.println(g);

System.out.println(h);


결과 : 

true

10

20

30

99999999999

1.21

3.141592653


자, 위 예제를 보면 뭔가 좀 이상한게 보이지 않나요? 바로 long 타입 때 숫자 옆에 l과 float 타입 때 숫자 옆에 f입니다. 이걸 빼면 에러가 나는걸 볼 수 있죠? 형변환과 관련 된 내용이기 때문에 형변환 포스팅 때 알아보도록 하겠습니다.

지금은 long형엔 l 또는 L을 float형엔 f 또는 F를 붙어야 된다고 기억해주세요.


보통 기본적으로 정수형은 int를 실수형은 double을 사용합니다.


다음 포스팅에서 각 데이터 타입에 대해서 좀 더 알아보기로 하죠!

'초리의 Java 스터디' 카테고리의 다른 글

Java 강좌 - 00. 이클립스 설치  (0) 2015.10.03
Java 강좌 - 00. 개발환경 셋팅  (0) 2015.10.02
Java 강좌 - 시작  (0) 2015.10.02
Comments