본문 바로가기

Programming/Java

[자바 강좌] 3화 상수 와 데이터형(자료형)

[자바 강좌] 3화 상수 와 데이터형(자료형)



 난 시간에는 변수에 대해서 간략히 알아보았습니다. 그렇다면 이번 시간에는 변수의 반대인 '상수'

에 대한 개념과 이해를 해보도록 하겠습니다.


상수란 무엇일까요?  쉽게 말해서 변수의 반대말 입니다.

또한 자바에서는 상수를 '리터럴(literal)' 이라고도 합니다.


자바에서 말하는 상수는 '자료형(데이터형)'을 기반으로 메모리 공간에 저장이 됩니다.

그러므로 그 자체로 데이터로 인정해야 합니다. 상수와 리터럴는 거의 동일한 의미로 사용이 된다고

보시면 됩니다.


여기서 제가 '자료형'이라는 표현을 썼는데요. 지난 시간에 변수에 대해 설명할떄 부족했던 설명을

첨부해서 자료형(데이터형)이 무엇인지 부터 짚고 넘어가 보겠습니다.








자료형? 데이터형? 이게 뭔가요



▲ 위의 사진은 네이버 어학사전에서 data를 검색하면 나오는 뜻입니다.
data(데이터)는 우리나라말로 '자료' 이죠. 

그래서 프로그래머들 마다 다르게 부르기도 합니다. 데이터 = 자료 
그렇다면, 데이터형 = 자료형 이 됩니다. 

이런 사소한 것도 혼용되기 쉽기 떄문에 어디서도 이런것 까지 얘기를 안하길래 용어부터 정리 해보았습니다.
즉, 어떤식으로 불러도 상관없다는 것입니다^^ 
하지만 데이터형과 자료형 헷갈리지 않게 잘 기억하고 계셔야 누가 어떤 용어를 쓰더라도 흔들리지
않을수 있다는 점 떄문에 중요하다는 것을 기억해 주세요.




데이터형(자료형)의 이해


 데이터형(자료형)은 영어로는 data type 이라고 합니다.

컴퓨터는 태생이 숫자를 계산하는 기계 입니다. 단순하게 생각해 볼때 컴퓨터가 안에 공간이 있어서

이 공간마다 숫자를 넣어준다고 생각해 보세요. 이것이 바로 컴퓨터 내부의 메모리 라고 보면 됩니다.


자바에서는 이 필요한 만큼 메모리를 쓸 수 있도록 명령어를 지정되어 있는데요. 

바로 이것이 데이터형(자료형) 입니다. 


바로 위의 그림처럼 총 4개의 정수 데이터형이 있습니다. 이것을 토대로 변수를 선언을 하게 되면

정수의 표현방식을 토대로 값을 저장하게 되는 것이죠.


저기 그림에 써있는 숫자는 바이트(byte)를 의미 합니다.

컴퓨터는 2진수만 알고 있습니다.  2진수 숫자는 0과 1이죠.

이러한 2진수 숫자 하나를 '비트(bit)'라고 합니다. 


8 비트는 1 바이트(byte) 라고 합니다. 

위의 그림을 토대로 다시 설명 드리자면, short는 2바이트가 되죠.

2바이트는 몇비트 인가요? 


네, 1바이트가 8비트이면 2바이트는 16비트가 되는 것이죠.

int는 4바이트가 되고, long은 8바이트 즉, 64비트가 되는 겁니다.


질문: 왜 일반적으로 코딩할떄 int 형을 많이 사용할까요?


답변: short형도 있고, long 형도 있는데 왜 굳이 사람들이 int형으로 많이 변수를 사용 하는 걸까요?

그것은 자바에서는 정수형 연산을 계산할때 피연산자를 int형으로 변환 하기 떄문 입니다. 

즉, 코드효율이 int형이 더 좋다는 것이고 효율적인 코딩이 된다는 것이죠.



상수의 종류

상수는 변수의 반댓말 이라고 말했습니다.

예시를 들어서 설명해 보겠습니다.


int apple= 100;


int형 apple(애플) 이라는 변수에 '100'이라는 값을 저장 하라는 뜻이죠.

여기서 100 이 바로 '상수' 입니다.

이러한 상수에도 여러가지 종류가 있습니다.



(1) 문자상수 


char banana= 'A';


캐릭터형 의 바나나라는 변수에 문자 'A'를 집어 넣었습니다. 이게 바로 문자 상수 입니다.

문자상수를 표기할떄는 작은 따옴표(') 로 표시 해야 합니다.



(2) 논리상수 


boolean rich= true;


오로지 true 와 false 값만 할당할 수 있는 boolean 형으로 선언된 변수는 참과 거짓을 나타낼 떄 쓰입니다.



(3) 정수상수


15 

0x15

015


처음 숫자 15는 10진수를 의미 합니다.

두번쨰 숫자 0x15는 0x를 앞에 붙임으로서 16진수 15를 의미 하죠

세번쨰 숫자 015는 '0'을 붙임으로서 8진수 15를 의미 하게 됩니다.



(4) 실수상수


-1.5                        // double로 취급 됩니다.

1.5F 또는 1.5f            // float형 을 표현 합니다.

-1.5e+3                  // 지수승을 이용한 표현 합니다.

1.5D 또는 1.5d         // double 형을 표현 합니다.